URLエンコード / デコード

日本語や記号を含む文字列をURL(パーセント)エンコードしたり、その逆にデコードしたりできる無料ツールです。 処理はブラウザ内で完結し、データは送信されません。

使い方

「エンコード/デコード」を選び、入力欄に文字列を入れると、結果が下に表示されます。 クエリ文字列やリンクに日本語を含めたいときのエンコード、エンコードされたURLを読みたいときのデコードに使えます。

変換の規則

パーセントエンコードは、文字をいったんUTF-8のバイト列に直し、1バイトずつ % + 2桁の16進数で表す方式です。日本語は1文字あたり3バイトになることが多いため、%E6%A4%9C のように% が3つ並びます。当ツールは部分文字列の変換に適した方式(component)を採用しており、: / ? # & = + といった、URLで特別な意味を持つ記号も変換します。

一方、次の文字はそのまま残ります(変換されません)。

  • 半角英数字:A–Z a–z 0–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=2q%3D1%26r%3D2
https://example.com/a bhttps%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コード作成 が使えます。