URLエンコード・デコード
URLやクエリの値を貼り付けると、すぐにパーセントエンコードまたはデコードします。
入力はブラウザの外に出ませんRFC 3986WHATWG URL基準日 2026.10.14
入力
出力
URLエンコード・デコードの使い方
- 1入力欄にURLやテキストを貼り付けるか、「例を入れる」を押します。
- 2方向(エンコード・デコード)、範囲(コンポーネント・URL全体・フォーム)、文字コードを選ぶと、結果がすぐに変わります。
- 3「コピー」で結果をコピーするか、「ダウンロード」で .txt ファイルとして保存します。「入れ替え」は結果を入力に移して方向を逆にします。
URLエンコード・デコードのオプション
- 方向
- エンコードは文字を %XX に変換し、デコードは %XX を文字に戻します。既定はエンコードです。「入れ替え」を押すと結果が入力に移り、方向が逆になります。
- 範囲
- コンポーネント(既定)は encodeURIComponent と同じく値をまるごとエンコードし、/ ? & = も変換します。URL全体は encodeURI と同じくURLの区切り文字を残します。フォームは application/x-www-form-urlencoded の規則で空白を + と書き、デコードでは + を空白として読みます。
- 文字コード
- UTF-8(既定)、EUC-KR(CP949)、Shift_JIS(CP932)から選びます。後の2つは、URLにUTF-8を使わない古い日本・韓国のシステム向けです。
- URL分解表
- 入力が https:// などのスキームで始まる完全なURLのとき、プロトコル・ホスト・パスとクエリのキー・値をデコードした値で表に表示します。既定はオンです。
パーセントエンコーディングとこのツールの動作
URLに使える文字は決められたASCII文字だけです。それ以外の文字は、バイトごとに % と16進数2桁で表します。これが RFC 3986 のパーセントエンコーディングです。このツールはJavaScriptの encodeURIComponent・encodeURI と同じ結果を出します。コンポーネントの範囲では英数字と - _ . ! ~ * ' ( ) だけをそのまま残し、URL全体の範囲では ; / ? : @ & = + $ , # も残します。
フォームの範囲は WHATWG URL Standard の application/x-www-form-urlencoded の規則に従います。英数字と * - . _ だけを残し、空白は + と書きます。
URL全体の範囲でデコードするときは、%2F や %3F のように区切り文字を表すエスケープを展開せず、書かれたとおりに残します。decodeURI と同じ動作で、デコードしてもURLの構造は変わりません。
URLエンコード一覧表(記号・予約文字)
よく使う文字をUTF-8でパーセントエンコードした値の一覧です。カンマ , は %2C、スラッシュ / は %2F、空白は %20 です。コンポーネント・URL全体・フォームの列は、範囲ごとにこのツールがその文字をどう変換するかを示し、「そのまま」はエンコードせずに残すという意味です。
16進数の大文字と小文字は区別されず、%2c と %2C は同じバイトです。このツールはRFC 3986の推奨どおり大文字で書きます。
| 文字 | エンコード | コンポーネントencodeURIComponent | URL全体encodeURI | フォーム | 意味・注意点 |
|---|---|---|---|---|---|
| 改行(LF) | %0A | %0A | %0A | %0A | 複数行テキストの改行 |
| 空白 | %20 | %20 | %20 | + | フォームデータでは + と書く |
! | %21 | そのまま | そのまま | %21 | 予約文字(サブ区切り) |
" | %22 | %22 | %22 | %22 | URLにそのまま使えない文字 |
# | %23 | %23 | そのまま | %23 | フラグメント(# の後ろ)の開始 |
$ | %24 | %24 | そのまま | %24 | 予約文字(サブ区切り) |
% | %25 | %25 | %25 | %25 | エスケープの開始なので、% そのものは常にエンコードする |
& | %26 | %26 | そのまま | %26 | クエリパラメーターの区切り |
' | %27 | そのまま | そのまま | %27 | 予約文字(サブ区切り) |
( | %28 | そのまま | そのまま | %28 | 予約文字(サブ区切り) |
) | %29 | そのまま | そのまま | %29 | 予約文字(サブ区切り) |
* | %2A | そのまま | そのまま | そのまま | 予約文字(サブ区切り) |
+ | %2B | %2B | そのまま | %2B | フォームデータでは空白を表すため、+ そのものはエンコードが必要 |
, | %2C | %2C | そのまま | %2C | 予約文字(サブ区切り)。値の列挙によく使う |
/ | %2F | %2F | そのまま | %2F | パスの区切り |
: | %3A | %3A | そのまま | %3A | スキームの終わりとポートの前に使う |
; | %3B | %3B | そのまま | %3B | 予約文字(サブ区切り) |
< | %3C | %3C | %3C | %3C | URLにそのまま使えない文字 |
= | %3D | %3D | そのまま | %3D | クエリのキーと値の区切り |
> | %3E | %3E | %3E | %3E | URLにそのまま使えない文字 |
? | %3F | %3F | そのまま | %3F | クエリ文字列の開始 |
@ | %40 | %40 | そのまま | %40 | ユーザー情報とホストの区切り |
[ | %5B | %5B | %5B | %5B | ホストのIPv6アドレスを囲む |
\ | %5C | %5C | %5C | %5C | URLにそのまま使えない文字。ブラウザーは http・https のURLでは / として読む |
] | %5D | %5D | %5D | %5D | ホストのIPv6アドレスを囲む |
^ | %5E | %5E | %5E | %5E | URLにそのまま使えない文字 |
` | %60 | %60 | %60 | %60 | URLにそのまま使えない文字 |
{ | %7B | %7B | %7B | %7B | URLにそのまま使えない文字 |
| | %7C | %7C | %7C | %7C | URLにそのまま使えない文字 |
} | %7D | %7D | %7D | %7D | URLにそのまま使えない文字 |
~ | %7E | そのまま | そのまま | %7E | 非予約文字。フォームデータでだけエンコードする |
あ | %E3%81%82 | %E3%81%82 | %E3%81%82 | %E3%81%82 | ひらがな1文字はUTF-8で3バイト。Shift_JISでは %82%A0 |
日本語URLとShift_JIS
パーセントエンコードされた文字のバイト列は、文字コードによって変わります。ゼ はUTF-8では %E3%82%BC、Shift_JISでは %83%5B です。現在はほとんどがUTF-8ですが、古い日本や韓国のシステムのURLにはShift_JISやEUC-KRが残っています。ここでのShift_JISはCP932、EUC-KRはCP949を指し、ブラウザが使う WHATWG Encoding Standard と同じ基準です。
これらの文字コードでは、文字の2バイト目がASCII文字になることがあります。たとえば キ はShift_JISで2バイトの 83 4C で、%83L と書かれます。デコードではこのようなシーケンスも正しく読み取ります。
URLエンコード・デコードの例
クエリの値をエンコード(既定:エンコード、コンポーネント、UTF-8)
値の中の & と = もエンコードされるので、クエリの区切り文字と混ざりません。
入力
제킬로 dev&tools=1
出力
%EC%A0%9C%ED%82%AC%EB%A1%9C%20dev%26tools%3D1
URL全体をエンコード(範囲:URL全体)
://、/、?、= などの区切り文字はそのままにして、ハングルと空白だけを変換します。
入力
https://zekilo.com/ko/검색?q=a b
出力
https://zekilo.com/ko/%EA%B2%80%EC%83%89?q=a%20b
フォームのエンコード(範囲:フォーム)
空白は + になります。
入力
a b&c=제
出力
a+b%26c%3D%EC%A0%9C
EUC-KRでエンコード(文字コード:EUC-KR)
同じ文字はUTF-8では %EC%A0%9C%ED%82%AC%EB%A1%9C です。
入力
제킬로
出力
%C1%A6%C5%B3%B7%CE
変換されない記号(コンポーネント)
入力
!'()*~
出力
!'()*~
途中で切れたシーケンス(方向:デコード)
エラーとともに、切れたシーケンスが始まる位置(1行 1列)を表示します。
入力
%E0%A4%A
出力
E_URI_MALFORMED
例は、このツールを検証している基準ケースの値です。
URLエンコード・デコードのよくある質問
入力したデータはサーバーに送信されますか?
いいえ。入力と結果はこのブラウザ内だけで処理され、保存もしません。再読み込みすると消えます。
コンポーネントとURL全体は何が違いますか?
コンポーネントは入力を1つの値として扱うので、/ ? & = # のようにURLで意味を持つ文字もエンコードします。クエリの値やパスの一部を作るときに使います。URL全体は入力を完全なURLとして扱い、区切り文字を残すので、結果もそのまま開けるURLになります。
空白が %20 になるときと + になるときの違いは何ですか?
コンポーネントとURL全体の範囲では %20 になります。フォームの範囲では + になり、HTMLフォームや多くのクエリ文字列はこの書き方です。デコードで + を空白として読むのもフォームの範囲だけです。
%8C%9F%8D%F5 のようにデコードすると文字化けするURLはどう読みますか?
UTF-8ではなくShift_JISでエンコードされたURLの可能性が高いです。方向をデコードにして、文字コードをShift_JIS(CP932)に変えてみてください。古い韓国のサイトのURLならEUC-KR(CP949)を選びます。
「不正なパーセントエンコード」のエラーはなぜ出ますか?
% の後には16進数が2桁必要で、取り出したバイト列が選んだ文字コードで正しい文字になっている必要があります。エラーには、切れたシーケンスが始まる行と列が表示されます。コピーの途中でテキストが切れたときによく起こります。
Shift_JISやEUC-KRで表現できない文字はどうなりますか?
該当する文字の数をお知らせし、文字ごとに 😀 のような数値参照をパーセントエンコードした形で出力します。ブラウザがレガシーな文字コードのページからフォームを送るときと同じ方式です。
関連ツール
処理方法・標準
- 処理する場所:このブラウザ(お使いの端末)。送信も保存もしません。
- 標準: RFC 3986 · WHATWG URL
- エンジン: ZEKILO Dev URLエンコーダー・デコーダー (自社実装) · EUC-KR・Shift_JISの変換表(WHATWG Encoding の index から生成) (BSD 3-Clause (WHATWG))
- レガシーな文字コードは、ブラウザの TextDecoder でデコードし、WHATWG Encoding の index から作った表でエンコードします。
- 対になっていないサロゲートは U+FFFD(%EF%BF%BD)としてエンコードします。
- 空の入力はエラーではありません。出力が空になるだけです。
- 基準日 2026.10.14
- 変更履歴: 2026.10.14 よく使う文字のURLエンコード一覧表を追加
- 変更履歴: 2026.10.03 公開