URLエンコード・デコード
日本語や記号を含む文字列をURLエンコード(パーセントエンコーディング)したり、元の文字列に戻したりします。パラメータの値用とURL全体用を選べます。
クエリの値やパスの一部に使います。/ ? & = # も変換します。例:東京&大阪 → %E6%9D%B1%E4%BA%AC%26%E5%A4%A7%E9%98%AA
HTMLフォームの送信形式(application/x-www-form-urlencoded)に合わせ、空白を + にします。デコード時は + を空白に戻します。「パラメータの値・部分」でのみ使えます。
よく使う文字のエンコード一覧
| 文字 | encodeURIComponent | encodeURI |
|---|---|---|
| 空白 | %20 | %20 |
! | 変換しない | 変換しない |
" | %22 | %22 |
# | %23 | 変換しない |
$ | %24 | 変換しない |
% | %25 | %25 |
& | %26 | 変換しない |
' | 変換しない | 変換しない |
( | 変換しない | 変換しない |
) | 変換しない | 変換しない |
* | 変換しない | 変換しない |
+ | %2B | 変換しない |
, | %2C | 変換しない |
/ | %2F | 変換しない |
: | %3A | 変換しない |
; | %3B | 変換しない |
= | %3D | 変換しない |
? | %3F | 変換しない |
@ | %40 | 変換しない |
[ | %5B | %5B |
] | %5D | %5D |
~ | 変換しない | 変換しない |
é | %C3%A9 | %C3%A9 |
€ | %E2%82%AC | %E2%82%AC |
😀 | %F0%9F%98%80 | %F0%9F%98%80 |
使い方
- 対象を選びます。クエリの値など一部分なら「パラメータの値・部分」、URLをまるごと変換するなら「URL全体」です。
- HTMLフォームの形式(空白を + で表す)が必要な場合は「フォーム形式」をオンにします。
- 文字列を入力し、「エンコード」または「デコード」を押します。
- 結果を「コピー」します。「結果を入力に戻す」を押すと、結果を入力欄に移して続けて変換できます。
- ページ下の「よく使う文字のエンコード一覧」で、記号ごとの変換結果を2つの方式で見比べられます。
注意事項
- 入力は2MBまでです。
- 文字はUTF-8としてエンコード・デコードします。Shift_JISやEUC-JPでエンコードされた文字列(例:%93%8C)はデコードできず、エラーになります。
- 「URL全体」のデコードでは、%2F(/)・%3F(?)・%23(#)・%26(&)など区切りに使う記号はエンコードされたまま残ります。URLの構造が変わらないようにするためです。
- URLにアクセスしたり、リンクとして表示したりはしません。
計算・変換の仕組み
「パラメータの値・部分」はJavaScriptの encodeURIComponent / decodeURIComponent と同じ規則です。英数字と - _ . ! ~ * ' ( ) 以外をすべて変換します。
「URL全体」は encodeURI / decodeURI と同じ規則で、: / ? # [ ] @ & = + $ , ; などURLの区切りに使う記号は変換しません。
フォーム形式は URLSearchParams と同じ結果になるよう、空白を + にし、! ' ( ) ~ も変換します。デコード時は + を空白として扱います。
デコード前に % の後が16進数2桁か、バイト列が正しいUTF-8かを確認し、問題があれば何文字目かを表示します。
よくある質問
「パラメータの値・部分」と「URL全体」はどう使い分けますか?
検索語などクエリの値を1つ作るときは「パラメータの値・部分」です。& や = も変換されるため、値の中に記号があっても壊れません。URLをそのまま安全な形にしたいときは「URL全体」を使います。
空白は %20 と + のどちらになりますか?
通常は %20 です。「フォーム形式」をオンにすると + になります。デコード時も、フォーム形式をオンにしたときだけ + を空白に戻します。
エンコード済みの文字列をもう一度エンコードするとどうなりますか?
% が %25 に変換され、二重にエンコードされます。入力に %XX が含まれている場合は注意を表示します。
入力した文字列は送信されますか?
いいえ。変換はブラウザ内で行い、入力したURLにアクセスすることもありません。
関連ツール
最終更新日: