PERCENT-ENCODING GUIDE
URLエンコード・デコードの使い方
URLエンコードは、日本語、空白、記号などをURLで安全に扱える%から始まる表現へ変換します。このツールはJavaScriptのencodeURIComponent・decodeURIComponent相当で、入力した文字列をブラウザ上で変換します。
基本の使い方
- 1
モードを選ぶ
日本語や記号を%形式へ変える場合はエンコード、%E3%81%82のような文字列を戻す場合はデコードを選びます。
- 2
文字列を入力
クエリ値やURLの一部分など、変換したい範囲を入力します。入力内容はサーバーへ送信せず、ブラウザ内で処理します。
- 3
結果をコピーして確認
変換結果をコピーし、二重エンコードや文字化けがないか実際の利用先で確認します。
結果の見方
- %E3%81%82 のような値
- 文字をUTF-8のバイト列へ変換し、各バイトを%付き16進数で表したものです。
- %20 と +
- 一般的なURL成分では空白を%20で表します。フォーム形式では+を空白として扱う場合があり、文脈が異なります。
- %25
- %記号自身をエンコードした値です。%2520のような結果は二重エンコードの可能性があります。
- 予約文字
- &、=、?、#などはURL内で役割を持ちます。クエリ値だけを変換し、区切り記号までまとめて変換しないようにします。
よく使う場面
日本語をクエリへ入れる
検索語やファイル名などをURLパラメータの値として安全に渡します。
ログのURLを読みやすくする
%形式のパスやパラメータをデコードし、元の日本語や記号を確認します。
APIリクエストを確認する
パラメータ単位で変換結果を比べ、&や=が値として扱われるべきか確認します。
うまくいかないときの確認点
- URL全体をencodeURIComponentすると、https://の区切りや/まで変換されます。通常は値やパスの一部分を対象にします。
- URIErrorが出る場合は、%の後ろに16進数2桁がないなど、不完全なエンコード文字列が含まれていないか確認します。
- %25が繰り返し現れる場合は、すでにエンコード済みの文字列を再度変換していないか確認します。
- 文字化けする場合は、元データと受け取り側が同じ文字コード、通常はUTF-8として処理しているか確認します。
よくある質問
Q.URL全体をエンコードしてよいですか?
用途によります。このツールはURL成分向けの変換なので、通常はクエリ値やパスの一部を対象にします。URL全体では区切り記号の扱いに注意してください。
Q.URLデコードで+が空白にならないのはなぜですか?
+を空白として扱うのはapplication/x-www-form-urlencodedの規則です。decodeURIComponent自体は+をそのまま残します。
Q.変換した文字列は外部へ送信されますか?
このページのエンコード・デコード処理はブラウザ内で行われ、変換対象の文字列をサーバーへ送信しません。