URLエンコード / デコード
日本語や記号を含む文字列をURL(パーセント)エンコードしたり、その逆にデコードしたりできる無料ツールです。 処理はブラウザ内で完結し、データは送信されません。
使い方
「エンコード/デコード」を選び、入力欄に文字列を入れると、結果が下に表示されます。 クエリ文字列やリンクに日本語を含めたいときのエンコード、エンコードされたURLを読みたいときのデコードに使えます。
変換の規則
パーセントエンコードは、文字をいったんUTF-8のバイト列に直し、1バイトずつ % + 2桁の16進数で表す方式です。日本語は1文字あたり3バイトになることが多いため、%E6%A4%9C のように% が3つ並びます。当ツールは部分文字列の変換に適した方式(component)を採用しており、: / ? # & = + といった、URLで特別な意味を持つ記号も変換します。
一方、次の文字はそのまま残ります(変換されません)。
- 半角英数字:
A–Za–z0–9 - 記号:
-_.!~*'()
変換の例
| 入力 | エンコード結果 |
|---|---|
| 検索 | %E6%A4%9C%E7%B4%A2 |
| 東京 タワー | %E6%9D%B1%E4%BA%AC%20%E3%82%BF%E3%83%AF%E3%83%BC |
| q=1&r=2 | q%3D1%26r%3D2 |
| https://example.com/a b | https%3A%2F%2Fexample.com%2Fa%20b |
よくある間違い
- URL全体をまとめてエンコードしてしまう。上の例のように
https://の部分まで%3A%2F%2Fに変わり、リンクとして機能しなくなります。 エンコードするのはクエリの「値」など、変換したい部分だけにしてください。 - すでにエンコード済みの文字列を、もう一度エンコードする。
%自体が%25に変換され、%25E6%25A4%259Cのような二重エンコードになります。 受け手側で文字化けの原因になります。 - 全角記号を半角のつもりで使う。全角の「&」は半角の「&」とは別の文字で、
%EF%BC%86という3バイトの結果になります。 - 途中で切れた文字列をデコードする。
%の後ろに16進数2桁が揃っていない、あるいは日本語のバイト列が途中で途切れていると、 デコードはエラーになります。
よくある質問
URLエンコードとは何ですか?
URLで使えない文字(日本語・空白・記号など)を、%に続く16進数(パーセントエンコード)に変換することです。たとえば「検索」は %E6%A4%9C%E7%B4%A2 になります。リンクやクエリ文字列を安全に扱うために使います。
encodeURIとencodeURIComponentの違いは?
encodeURIはURL全体向けで「/」「?」「&」などを変換しませんが、encodeURIComponentはクエリの値など「部分」向けでそれらも変換します。当ツールは部分文字列の変換に適した方式(component)を採用しています。
デコードでエラーになるのはなぜ?
「%」の後に正しくない16進数が続いているなど、パーセントエンコードとして不正な文字列はデコードできません。入力を確認してください。
入力した文字列は送信されますか?
いいえ。変換はすべてブラウザ内で行われ、入力内容が外部へ送信・保存されることはありません。
URL全体を入れるとhttp://まで変換されてしまいます。
当ツールはクエリの値など「部分」を変換する方式のため、「:」「/」も %3A %2F に変換されます。URL全体をそのまま残したい場合は、変換したい部分(検索語やパラメータの値)だけを入力してください。逆に、エンコードされたURL全体を読みたいときはデコード側にそのまま貼り付けて問題ありません。
空白が %20 になりますが「+」ではないのですか?
当ツールは空白を %20 に変換します。「+」で空白を表す書き方は、HTMLフォームの送信で使われる application/x-www-form-urlencoded という別の形式のものです。「+」が求められる場面では、変換後に %20 を「+」へ置き換えてください。
関連ツール
JSONの整形は JSON整形、文字数の確認は 文字数カウント もどうぞ。 文字列をテキストとして安全に持ち回りたいときは Base64エンコード、%E6 のような16進数そのものを確かめたいときは 基数変換 が便利です。 日本語のタイトルからURL用の文字列を作るなら スラッグ生成 をどうぞ。 URLをそのまま配りたいときは QRコード作成 が使えます。