URLエンコード・デコード

URLのパーセントエンコードを相互変換します。

🐾 入力内容はブラウザ内で処理され、サーバーには送信されません

使い方

  1. 「入力」欄に、変換したい文字列を貼り付けます。
  2. 日本語や記号を %XX の形にするときは「エンコード →」、%XX を含む文字列を読める形に戻すときは「← デコード」を押します。
  3. 「結果」欄に変換後の文字列が表示されます。選んだボタンは色が変わり、そのあと「入力」欄を直すと自動で変換し直されます。「コピー」を押すとクリップボードにコピーでき、「✓ コピーしました」と表示されます。

URL全体をエンコードすると、「https://」の「:」や「/」まで変換されてしまい、URLとして使えなくなります。エンコードは、クエリの値(「?q=」のあとに続く検索語など)の部分だけに使うのが基本です。

エンコードされる文字

URLに使える文字は限られているため、それ以外の文字は「%」と2桁の16進数で表します(パーセントエンコード)。このツールは、文字をUTF-8のバイト列に直し、1バイトずつ「%XX」に置き換えます。日本語1文字はUTF-8で3バイトなので、「%XX」が3つ並びます。

文字扱い
英数字、- _ . ! ~ * ' ( )そのまま残る
空白%20
& = ? / : # + などの記号%26 %3D %3F などに変換
日本語などの文字UTF-8で1バイトごとに %XX

たとえば「ねこ & いぬ」をエンコードすると、次のようになります。

%E3%81%AD%E3%81%93%20%26%20%E3%81%84%E3%81%AC

「ね」が %E3%81%AD、空白が %20、「&」が %26 に対応しています。この処理はJavaScriptの encodeURIComponent と同じ規則で、デコードは decodeURIComponent で元に戻しています。

こんなときに便利

よくある質問

「+」が空白に戻らないのはなぜですか?

フォーム送信などでは空白を「+」で表すことがありますが、このツールのデコードは「+」をそのまま残します。「+」を空白として扱いたい場合は、先に「+」を「%20」に置き換えてからデコードしてください。

「デコード失敗」と表示されるのはなぜですか?

「%」のあとに16進数2桁が続いていない場合や、UTF-8として成り立たないバイトの並びが含まれている場合に表示されます。Shift_JISなどUTF-8以外でエンコードされた文字列もデコードできません。

一度エンコードした文字列をもう一度エンコードするとどうなりますか?

「%」自体が「%25」に変換されるため、「%E3」は「%25E3」のようになります(二重エンコード)。元に戻すには、デコードを2回行ってください。

入力した内容はサーバーに送信されますか?

送信されません。変換はすべてお使いのブラウザの中で行われ、入力内容が保存されることもありません。