URL エンコード・デコード
コピーしたリンクが %E6%9D%B1%E4%BA%AC のような文字列になってしまったときに日本語へ戻したり、クエリ文字列に入れる値を安全にエンコードしたりするときに使います。
変換は UTF-8 を基準にブラウザ内で行われ、入力した内容はどこにも送信されません。
ファイルや入力内容はこのブラウザ内だけで処理されます。サーバーへのアップロードや保存は一切行いません。
使い方
- エンコードかデコードかを選びます。
- モード(値ひとつ用か URL 全体用か)を選びます。
- テキストを貼り付けます。URL の一覧なら1行ずつ処理をオンにします。
- 結果をコピーします。
機能と制限
- 値ひとつ用(encodeURIComponent)は & = ? / などの区切り文字もエンコードするため、クエリパラメータの値ひとつを入れるときに適しています。
- URL 全体用(encodeURI)は :、/、?、& など URL の構造を表す文字はそのまま残し、空白や日本語などの非 ASCII 文字をエンコードします。
- 「1行ずつ個別に処理」をオンにすると、各行を別々に変換します。
- 「スペースを + にする」は HTML フォームの形式に合わせ、エンコード時は空白を + に、デコード時は + を空白に変換します。
- デコードに失敗した場合は、不正な % 表記を含む行を表示します。
よくある質問
encodeURI と encodeURIComponent の違いは何ですか?
encodeURI は URL 全体が対象で、/ ? & などの構造を表す文字は残します。encodeURIComponent はそれらもエンコードするので、値に含まれる & が別のパラメータの区切りと誤解されません。
空白は %20 と + のどちらにすべきですか?
URL のパスには %20 を使います。+ は HTML フォームのデータ(application/x-www-form-urlencoded)の形式なので、受け取る側がその形式を想定している場合にだけ選んでください。
URI malformed エラーが出るのはなぜですか?
% の後に正しい16進数2桁が続いていないか、UTF-8 として解釈できないバイト列があるためです。このツールは問題のある行を表示します。
%2520 のように二重にエンコードされてしまいました。
%25 は % 記号をエンコードしたものなので、すでにエンコード済みの文字列をもう一度エンコードしたことが原因です。もう一度デコードすると元に戻ります。