開発者

URL Encoder / Decoder

スペースや記号、特殊文字はURLを壊します — パーセントエンコーディングがそれを解決します。安全に送信するために任意のURLをエンコードするか、読みやすいテキストにすぐデコードできます。

このツールは役に立ちましたか?

URL Encoder / Decoderとは?

URLエンコーダー/デコーダーは、テキストをURL安全なパーセントエンコード形式に変換する必須のウェブ開発ツールです。URLにスペース、特殊記号、アクセント文字や絵文字などの非ASCII文字が含まれていると、正しくエンコードされていないと破損します。このツールは、URLモード(完全なURLのエンコード)とコンポーネントモード(個々のクエリパラメータ値のエンコード)の両方を完全サポートした即時エンコードとデコードを提供し、複数の文字列を同時に処理するバッチモードも備えています。RFC 3986で定義されたすべての標準パーセントエンコード操作を処理します。Web開発者、API統合者、SEOスペシャリスト、クエリ文字列やリダイレクト、URLベースのデータ転送に携わるすべての人に不可欠です。ブラウザ内で完結するため高速でプライベートです。

この計算機を使用するタイミング

  • スペース、記号、非ASCII文字を含むクエリパラメータを持つURLを構築している
  • パーセントエンコードされたURLをデコードして実際の内容を読みたい
  • エンコードされていない特殊文字が原因でAPIがURLを拒否しており、デバッグしている
  • 使用前にサニタイズが必要なユーザー送信URLを処理している
  • 複数のURLセグメントをまとめてバッチエンコードまたはデコードする必要がある
  • パラメータを正しくエンコードする必要があるリダイレクトやコールバックURLを構築している

手順:

  1. エンコードまたはデコードしたいテキスト/URLを入力または貼り付けます。
  2. エンコードまたはデコードモードを選択します。
  3. 変換ボタンをクリックします。
  4. 結果をコピーしてアプリケーションで使用します。

計算式

エンコード: 安全でない文字 → % + 2桁の16進コード ➡ デコード: %XX → 元の文字

ユースケース

  • URLに安全なクエリ文字列を構築する
  • APIリクエストのパラメータを処理する
  • エンコードされたURLをデバッグする
  • URLに適したスラッグとパスを作成する

主な利点

  • タイピング的同时にリアルタイムでエンコードとデコード
  • URLモードとコンポーネントモードの両方をサポート
  • 複数の文字列を同時にエンコードまたはデコードするバッチモード
  • Unicodeや絵文字を含むすべての特殊文字を処理
  • 100%ブラウザベース — サーバーにデータが送信されない
  • エンコーディングが入力を重複させたり切り捨てたりしていないことを確認するための視覚的な文字数表示

プロのヒント

  • URLに含める前に、ユーザー生成のURLパラメータを常にエンコードしてください
  • JavaScriptでは個々のクエリパラメータ値にencodeURIComponent()を使用してください
  • ユーザーに表示する前にURLをデコードして読みやすくしてください
  • 二重エンコーディングに注意:%25の後にさらに16進数が続く場合、URLは恐らく2回エンコードされています
  • クエリ文字列を構築する際はコンポーネントモードを、URLパス全体または完全なURLをエンコードする際はURLモードを使用してください

避けるべきよくある間違い

  • 既にエンコードされたURLをエンコードして二重エンコーディング、%20が%2520に変換される
  • 間違ったエンコーディングコンテキストの使用 — URLモードとコンポーネントモードは同じ入力に対して異なる出力を生成
  • +がapplication/x-www-form-urlencodedデータ内でのみスペースを表すことを忘れる
  • 非ASCII文字を正しく処理しない — パーセントエンコーディングの前に必ずUTF-8エンコーディングを確認してください

重要な用語の説明

パーセントエンコーディング: URL内で文字をエンコードする標準メカニズム、安全でない文字を%とその後の2桁の16進ASCIIコードに置き換え
クエリ文字列: URLの?文字の後の部分、&で区切られたキーと値のペアを含む
予約文字: :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, = — RFC 3986に従いURL構文で特別な意味を持つ文字
コンポーネントモード対URLモード: コンポーネントモードはより多くの文字をエンコードし個々の値用; URLモードはURL構造を保持し完全なパス用

関連コンセプト

  • パーセントエンコーディング: 安全なURL送信のために、安全でない文字を%とその2桁の16進ASCIIコードに置き換える仕組み
  • クエリ文字列: URL内の?文字より後の部分で、&文字で区切られたキーと値のペアを含む
  • 予約文字: :, /, ?, #, [, ], @, !, $, &, (, ), *, +, ,, ;, =のような、RFC 3986に基づくURL構文で特別な意味を持つ文字
  • URL安全な文字: URLでエンコードを必要としない未予約文字(英字、数字、-、_、.、~)
  • encodeURIComponent vs. encodeURI: encodeURIComponentが個々の値に対して英字・数字・_*-.~以外をすべてエンコードするのに対し、encodeURIは完全なURLに対してURL構造の文字を保持するJavaScript関数

例

'Hello World & Friends!'をエンコード → 'Hello%20World%20%26%20Friends%21'。'search%3Fq%3Dhello+world'をデコード → 'search?q=hello world'。

結果の解釈方法

エンコーダーは、安全でないURL文字(スペース、&、?、#、非ASCIIなど)を、各文字が%とその2桁の16進コードになるパーセントエンコード形式に変換します。デコーダーはこのプロセスを逆にして、元の読みやすいテキストを復元します。文字数は、エンコードによって入力が予期せず重複または切り詰められていないことを確認するのに役立ちます。 コンポーネントモードはより広い範囲の文字をエンコードし、個々のクエリパラメータ値をエンコードするために設計されています。URLモードはエンコード対象がより厳格で、完全なURLパスまたはURL全体をエンコードするために設計されています。クエリ文字列を構築するときはコンポーネントモード、完全なURLをエンコードするときはURLモードを使用してください。 バッチモードでは複数の行を一度にエンコードまたはデコードでき、処理するURLやパラメータのリストがある場合に便利です。各行は個別の入力として扱われ、すべての結果がまとめて表示されるため簡単にコピーできます。

よくある質問

URLにエンコードが必要なのはなぜですか?
URLに使用できるASCII文字は限られています。スペース、&、?、#などの文字や非ASCII文字は、インターネット上で安全に送信するためにエンコード(パーセントエンコーディング)する必要があります。
パーセントエンコーディングとは何ですか?
パーセントエンコーディングは、安全でない文字を%記号とその2桁の16進コードに置き換えます。たとえば、スペースは%20になり、&は%26になります。
URLエンコーディングはHTMLエンコーディングと同じですか?
いいえ。URLエンコーディング(パーセントエンコーディング)はURL用です。HTMLエンコーディングは&を表す&amp;や<を表す&lt;のようなエンティティを使用します。Web開発では用途が異なります。
URLモードとコンポーネントモードはいつ使い分ければよいですか?
単一のクエリパラメータ値(検索語など)をエンコードするときはコンポーネントモードを使います。完全なURLパスをエンコードするとき、または文字列全体をURL安全にする必要があるときはURLモードを使います。コンポーネントモードは値がURL構造の内部に配置されることを想定しているため、より多くの文字をエンコードします。
'Hello World'をエンコードすると'Hello+World'ではなく'Hello%20World'になるのはなぜですか?
URLパスセグメントでは、スペースは%20としてエンコードされます。スペースの+エンコーディングは、application/x-www-form-urlencodedデータ(HTMLフォーム送信)でのみ使われます。現代のベストプラクティスではURL内で一貫して%20を使います。この計算機はURLエンコーディングに%20を使用します。
絵文字やアクセント付き文字などの非ASCII文字をエンコードできますか?
はい。非ASCII文字はまずUTF-8バイトに変換され、各バイトがパーセントエンコードされます。たとえば、絵文字☺(U+1F600)は%F0%9F%98%80になります。é(U+00E9)のようなアクセント付き文字は%C3%A9になります。これはRFC 3986で定義された標準的な方法です。
これとHTMLエンティティエンコーディングの違いは何ですか?
URLエンコーディング(パーセントエンコーディング)はURL用で、文字を%XXの16進コードに変換します。HTMLエンティティエンコーディングは、&を表す&amp;や€を表す&#8364;のような名前付きまたは数値エンティティに文字を変換します。両者はまったく異なる用途で、互換性はありません。
特殊文字が含まれていても、エンコードせずに機能するURLがあるのはなぜですか?
最新のブラウザは、URLに移動したりフォームを送信したりするときにURLを自動的にエンコードします。ただし、プログラム的に(コード、API呼び出し、サーバー側リダイレクトで)URLを構築する場合は、サーバーが代わりに処理しないため、手動でエンコードする必要があります。
二重エンコードのリスクはありますか?
はい。すでにエンコードされたURLをエンコードすると、%20が%2520になり、誤りとなります。再度エンコードする前に、入力がすでにエンコードされているかどうかを必ず確認してください。この計算機はデコードされた出力を表示するため、結果が正しいことを確認できます。
JavaScriptでエンコードされたURLをどう扱えばよいですか?
個々の値をデコードするにはdecodeURIComponent()、エンコードするにはencodeURIComponent()を使用します。完全なURLには、URL構造の文字(/、?、#など)を保持するdecodeURI()とencodeURI()を使用します。escape()やunescape()は非推奨でUnicodeを正しく処理できないため、絶対に使用しないでください。

さらに多くのツールを見る

ツールライブラリ全体から厳選したおすすめです。