テキストや URL をパーセントエンコーディングへ変換、または元のテキストに復元。
使い方
- 上の INPUT に変換したいテキストや URL を貼り付けます。 日本語・記号・絵文字を含む文字列もそのまま入力できます。
-
エンコード を押すと、URL に使える形式(パーセントエンコーディング)に変換されます。
例:
こんにちは→%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF -
デコード を押すと、エンコードされた文字列を元のテキストに戻します。
+はスペースとして扱い、不正な部分は可能な範囲で復元します。 - 結果は OUTPUT の右下「コピー」ボタンでクリップボードへ。クリア で入力も結果もリセットできます。
URLエンコードについて
URLエンコード(パーセントエンコーディング)は、URL の中で使えない文字や、特別な意味を持つ記号を % から始まる安全な形式に置き換える仕組みです。日本語や半角スペース、& や ? といった記号をクエリパラメータに含めるときによく使われます。
このツールは内部で encodeURIComponent / decodeURIComponent を使い、UTF-8 ベースで変換します。日本語1文字が %E3%81%82 のように3つ組で並ぶのは、UTF-8 で日本語がおおむね3バイトになり、1バイトを %XX 1つで表すためです。見た目が長くなるのはこのしくみによるもので、変換ミスではありません。
エンコードしても変わらない文字もあります。英数字と - _ . ! ~ * ' ( ) はそのまま残り、それ以外は %XX に置き換わります。半角スペースは %20 になります。/ や ? も変換対象なので、URL全体をまとめてエンコードすると https:// の部分まで https%3A%2F%2F に潰れてしまいます。エンコードするのはクエリパラメータの「値」の部分だけ、と覚えておくと間違えません。
すべての処理はブラウザ内で完結し、入力した内容が外部に送信されることはありません。社内ツールの URL や下書き中の API リクエストなど、ちょっと外に出したくないテキストも安心して扱えます。
たとえば「東京 スカイツリー」という文字列をエンコードすると %E6%9D%B1%E4%BA%AC%20%E3%82%B9%E3%82%AB%E3%82%A4%E3%83%84%E3%83%AA%E3%83%BC となります。API のクエリパラメータに日本語を渡す際や、フォームのデータを URL に含める際にこの変換が必要になります。
デコードのときは + の扱いに注意してください。HTML フォームの送信形式では半角スペースが + で表されるため、このツールでも + はスペースとして復元します。そのため「1+1」のように + をそのまま含む文字列をデコードすると「1 1」になります。+ を記号として残したい文字列は、エンコード済みの %2B の状態で貼り付けてください。
キーボードだけでも操作できます。入力欄で Ctrl(⌘)+ Enter でエンコード、Ctrl(⌘)+ Shift + Enter でデコードが実行されます。何度も貼り付けて確認する作業では、ボタンを押しに行くより速く済みます。
よくある質問
Q. URLエンコードとは何ですか?
A. URLに使えない文字(日本語・スペース・記号など)を %XX 形式の安全な文字列に変換する仕組みです。パーセントエンコーディングとも呼ばれます。Webのフォーム送信やAPIのクエリパラメータを組み立てる際によく必要になります。
Q. 日本語のURLはなぜ文字化けするのですか?
A. URLは本来ASCII文字しか扱えない仕様のため、日本語をそのまま含めると環境によって文字化けが発生します。エンコードすることでどの環境でも正しく解釈されるようになります。
Q. デコードに失敗する場合があります
A. エンコードが不完全な文字列(% の後に正しい16進数が続かない場合など)はデコードに失敗することがあります。元のテキストが正しくエンコードされているか確認してください。
Q. encodeURI と encodeURIComponent の違いは?
A. encodeURI はURL全体をエンコードするためのもので、/ ? # & などURL構造に必要な文字は変換しません。encodeURIComponent はクエリパラメータの値など「URLの一部」をエンコードするためのもので、これらの記号もすべて変換します。このツールは encodeURIComponent を使用しています。
Q. 複数行をまとめてエンコードできますか?
A. 入力された内容をひとつづきの文字列として変換するため、行ごとに分けての処理はしません。改行そのものも %0A に変換されます。URL を1本ずつ変換したい場合は、1件ずつ貼り付けて実行してください。
Q. URL全体を貼ったら https:// まで変換されました
A. 仕様どおりの動作です。このツールは / や ? も変換対象に含む encodeURIComponent を使っているため、URL全体を渡すと構造を表す記号まで %3A%2F%2F のように潰れます。エンコードするのはパラメータの値の部分だけにして、?q= より前はそのまま残してください。
Q. デコードしたら + が消えて空白になりました
A. HTML フォームの送信形式では半角スペースが + で表されるため、このツールは + をスペースとして復元します。+ を記号として保ちたい場合は、%2B にエンコードされた状態の文字列を貼り付けてください。Base64 のようにデータ中へ + が入る形式を扱うときに引っかかりやすい点です。
Q. デコードしても %E3%81%82 のままです
A. 二重にエンコードされている可能性があります。%25E3%2581%2582 のように %25(=% 自身のエンコード結果)が現れていたら、その状態です。もう一度デコードを実行すると元のテキストに戻ります。プログラム側でエンコード処理が二重にかかっているサインでもあるので、原因の切り分けにも使えます。
Q. エンコードされない文字はありますか?
A. 英数字と - _ . ! ~ * ' ( ) はそのまま残ります。これらは URL の中でそのまま書いても意味が変わらない文字として扱われるためです。
Q. キーボードショートカットはありますか?
A. 入力欄で Ctrl(⌘)+ Enter でエンコード、Ctrl(⌘)+ Shift + Enter でデコードが実行されます。
Q. 入力した内容はどこかに送信されますか?
A. 送信されません。変換はすべてブラウザ内で完結しており、サーバーへ送る処理はありません。アクセストークンを含む URL や社内システムのリクエストなど、外部に出したくない文字列も扱えます。
活用シーン
日本語を含むURLの変換
日本語パスやパラメータをエンコードしてURLに安全に使いたいとき。ブラウザやAPIに渡す形式に変換できます。
APIパラメータのデバッグ
エンコードされたクエリ文字列を読みやすい形に戻して内容を確認したいとき。ログやリクエストの解析に使えます。
フォームデータの確認
HTMLフォームのsubmit時に生成されるURLエンコード文字列を解読したいとき。送信内容の検証やデバッグに役立ちます。
問い合わせで届いたURLの中身を読む
「このURLでエラーが出ました」と共有されたURLが、エンコードされていて中身が読めないとき。デコードすればパラメータの値がそのまま見えるので、どの条件で起きた不具合なのかを短時間で切り分けられます。パラメータが途中で切れているといった、見ただけでは気づけない異常もこれで見つかります。
アクセスログの調査
サーバーのアクセスログに残ったリクエストURLを読み解きたいとき。ログにはエンコードされた状態で記録されるため、そのままでは日本語の検索キーワードなどが判別できません。
二重エンコードの切り分け
パラメータが正しく渡らない不具合を調べたいとき。%25 が含まれていれば二重エンコードが起きているサインで、プログラム側のどこで余分に変換しているかを探す手がかりになります。