ToollyToolly
Web・開発

URLエンコード・デコード

URL全体・URLパラメータ・日本語文字列の3モードでencodeURIComponent/encodeURIによる変換をリアルタイムに行えます。不正なパーセントエンコーディングはエラー表示で分かりやすく通知します。

使い方

  1. 1「URL全体」「URLパラメータ」「日本語文字列」からモードを選びます。
  2. 2「エンコード」または「デコード」を選び、テキストエリアに文字列を入力します。
  3. 3入力するとリアルタイムに変換結果が表示されます。結果はワンクリックでコピーできます。

計算方法・変換方法

「URL全体」はencodeURI/decodeURIを使用し、「://」「/」「?」「&」「=」「#」などURLの構造を表す記号はそのまま残し、日本語やスペースなど安全でない文字だけをエンコードします。

「URLパラメータ」「日本語文字列」はencodeURIComponent/decodeURIComponentを使用し、&・=・?・#を含むすべての記号をエンコードします。クエリパラメータの値など、URLの部品として安全に埋め込みたい文字列に向いています。

URLエンコード(パーセントエンコーディング)は、URLに使えない文字をUTF-8のバイト列に直し、1バイトごとに「%」と16進数2桁で表す仕組みです。たとえば「あ」はUTF-8で3バイトになるため「%E3%81%82」に、半角スペースは「%20」に変換されます。

すでにエンコードされた文字列をもう一度エンコードすると、「%」自体が「%25」に変換され、「%E3」が「%25E3」のようになります(二重エンコード)。リンクが正しく開けないときは、この状態になっていないかを確認してみてください。デコードを1回行って日本語に戻らない場合は、もう一度デコードすると元に戻ることがあります。

利用例

  • 日本語を含むURLをメールやチャットに貼るために、エンコード済みの形に変換する
  • %E3%81%82 のように文字化けして見えるURLを、元の日本語に戻して内容を確認する
  • 検索キーワードをクエリパラメータに埋め込むために、安全な形式へ変換する
  • 計測用パラメータ付きURLを組み立てる際に、値を正しくエスケープする

よくある質問

URL全体とURLパラメータ、どちらを使えばいいですか?
URLをそのままブラウザに貼り付けて使いたい場合は「URL全体」、他のURLのクエリパラメータの値として埋め込みたい場合は「URLパラメータ」を選んでください。
デコードでエラーが出るのはなぜですか?
「%」の後に正しい16進数2桁が続いていない不正なエンコード文字列が入力されると、decodeURIComponent等がエラーになります。入力内容をご確認ください。
なぜ日本語のURLはエンコードが必要なのですか?
URLの規格では、使用できる文字が英数字と一部の記号に限られているためです。日本語やスペースはそのままでは扱えないため、%記号で始まる形式に変換して表現します。
スペースが「%20」と「+」のどちらになるのが正しいですか?
URLのパス部分では「%20」を使います。「+」はHTMLフォームの送信形式(application/x-www-form-urlencoded)でクエリ文字列に使われる表記で、用途が異なります。
変換した文字列はサーバーに送信されますか?
いいえ。エンコード・デコードはすべてブラウザ内で処理され、入力内容が外部に送信されることはありません。

注意事項

  • ・URL全体をencodeURIComponentでエンコードすると、「://」や「?」までエンコードされてリンクとして機能しなくなります。用途に合ったモードを選んでください。
  • ・すでにエンコード済みの文字列を再度エンコードすると「%」自体が「%25」に変換され、二重エンコードになります。
  • ・パスワードやトークンなどの機密情報の変換は、取り扱いにご注意ください(本ツールでの処理自体はブラウザ内で完結します)。

他のカテゴリを見る