URL エンコード / デコード の使い方 🚀 ツールを使う
無料 登録不要 ブラウザのみ

🔗 URL エンコード / デコード の使い方

日本語や特殊文字を含む文字列を URL で安全に使えるパーセントエンコーディング形式に変換・復元できるツールです。RFC 3986 に準拠した encodeURIComponent 相当の変換を行うため、クエリパラメータや API リクエストの値として安全に利用できます。エンコード・デコードどちらの方向にも対応しており、ログファイルに埋め込まれた URL の解析や、フォームデータのデバッグにも幅広く活用できます。

🚀 今すぐ URL エンコードツールを使う →

📌 このツールでできること

URL エンコード / デコード ツールでは、以下の操作を即座に実行できます。

  • 日本語・記号・スペースなどを含む文字列を %XX 形式にエンコード
  • %XX 形式の文字列を元のテキストにデコード
  • encodeURIComponent 相当の厳格エンコード(クエリパラメータ向け)
  • 結果のワンクリックコピー
  • 非 ASCII 文字(日本語・中国語・絵文字など)の UTF-8 バイト列ベースのエンコード
  • 予約文字(! ' ( ) * - _ . ~ など)の扱いを RFC 3986 に準拠して処理
  • エンコード前後の文字列を並べて比較確認
  • API リクエストのクエリ文字列やパスパラメータとして使える形式に整形
  • ログ・Webhook ペイロードに含まれる URL エンコード文字列のデコード解析

🚀 使い方

  1. テキストエリアにエンコードまたはデコードしたい文字列を入力します。
  2. 「エンコード」ボタンを押すと %XX 形式の文字列が表示されます。
  3. 「デコード」ボタンを押すと %XX 形式を元のテキストに戻せます。
  4. 「コピー」ボタンで結果をクリップボードにコピーします。

💡 活用例

クエリパラメータに日本語を使う

URL のクエリ文字列に日本語を含めると、ブラウザや HTTP ライブラリが自動的にエンコードする場合がありますが、手動で確認・生成したいときに便利です。例えば検索 API に日本語キーワードを渡す場合、エンコード後の文字列を直接コピーして使えます。

検索キーワード: "東京 カフェ"
エンコード後: %E6%9D%B1%E4%BA%AC%20%E3%82%AB%E3%83%95%E3%82%A7
URL例: https://example.com/search?q=%E6%9D%B1%E4%BA%AC%20%E3%82%AB%E3%83%95%E3%82%A7

フォームデータのデバッグ

HTML フォームを application/x-www-form-urlencoded で送信すると、フィールド名と値が URL エンコードされます。ブラウザの開発者ツールのネットワークタブに表示される文字列をこのツールでデコードすることで、実際に送信されたデータを素早く確認できます。バックエンドのデバッグ効率が大幅に向上します。

ログ・エラーメッセージのデコード

アプリケーションログや Webhook ペイロードにエンコードされた URL 文字列が記録されている場合、このツールでデコードすることで可読性を上げられます。特に外部サービスからのコールバック URL や OAuth リダイレクト URI の解析に役立ちます。

JavaScript / Python でのエンコード方法確認

コードを書く前にこのツールで期待値を確認しておくと、実装後の動作検証がスムーズになります。JavaScript では encodeURIComponent()、Python では urllib.parse.quote() が対応関数です。

// JavaScript
encodeURIComponent("東京 カフェ")
// => "%E6%9D%B1%E4%BA%AC%20%E3%82%AB%E3%83%95%E3%82%A7"

# Python
from urllib.parse import quote
quote("東京 カフェ", safe='')
# => "%E6%9D%B1%E4%BA%AC%20%E3%82%AB%E3%83%95%E3%82%A7"

🔍 技術的な背景 / 仕組み

URL エンコードは RFC 3986 で定義された「パーセントエンコーディング」です。URL で使用できない文字(予約文字や非 ASCII 文字)を % に続く 2 桁の 16 進数(UTF-8 バイト値)で表現します。アルファベット・数字・- _ . ~ の非予約文字はエンコードされません。

例:「あ」は UTF-8 で 3 バイト(0xE3 0x81 0x82)なので、%E3%81%82 になります。絵文字もUTF-8の4バイトシーケンスとしてエンコードされるため、😀%F0%9F%98%80 になります。

エンコードが必要な主な文字

以下の文字は URL の構造上意味を持つ「予約文字」または URL に使用できない文字として、クエリパラメータの値に含める場合はエンコードが必要です。

文字 エンコード後 備考
スペース%20フォームでは + も使用
&%26クエリの区切り文字
=%3Dキー・値の区切り文字
+%2Bフォームでスペースと混同注意
#%23フラグメント識別子
/%2Fパス区切り文字
?%3Fクエリ文字列の開始
日本語(あ)%E3%81%82UTF-8の3バイト

encodeURI vs encodeURIComponent の違い

JavaScript には 2 つのエンコード関数があります。用途に応じて使い分けが重要です。

  • encodeURI():URL 全体をエンコード。://?=& などの構造文字はエンコードしない。
  • encodeURIComponent():URL の一部(クエリパラメータの値など)をエンコード。! ' ( ) * を除くほぼすべての特殊文字をエンコード。

このツールはクエリパラメータの値として安全な encodeURIComponent 相当の変換を行います。URL 全体をエンコードしたい場合は、パスとクエリを分けて操作するか encodeURI を使用してください。

%20 と + の違い(よくある間違い)

スペースのエンコードには %20+ の 2 種類があります。RFC 3986 の URL パーセントエンコードでは %20 が正式です。一方、+ は HTML フォームの application/x-www-form-urlencoded 形式で使われる慣習的な表現です。REST API に JSON を送る場合やクエリパラメータを手動で組み立てる場合は %20 を使うのが安全です。

❓ よくある質問

Q. スペースは %20+ どちらになりますか?
RFC 3986 の標準では %20 です。+ は HTML フォームの application/x-www-form-urlencoded 形式での慣習的な表現で、厳密には異なります。このツールは %20 を使用します。サーバー側で + をスペースとして解釈するかどうかはフレームワーク次第なので注意が必要です。
Q. 日本語 URL はどのようにエンコードされますか?
日本語は UTF-8 でエンコードされます。例えば「東京」は UTF-8 で 6 バイト(E6 9D B1 E4 BA AC)となるため、%E6%9D%B1%E4%BA%AC と表現されます。ブラウザのアドレスバーには読みやすい日本語で表示されますが、内部的には常にエンコードされた形式で処理されています。
Q. デコードもできますか?
はい。「デコード」ボタンを押すことで %XX 形式の文字列を元のテキストに戻せます。ログファイルや API レスポンスに含まれるエンコード済み URL を人間が読みやすい形式に変換する際に便利です。
Q. 二重エンコードに注意が必要なケースは?
すでにエンコードされた文字列を再度エンコードすると、% 自体が %25 に変換されて二重エンコードになります。例えば %E3%81%82 を再度エンコードすると %25E3%2581%2582 になり、受け取り側で正しくデコードできなくなります。API に渡す値は一度だけエンコードするよう注意してください。
Q. 日本語ドメイン(IDN)もエンコードできますか?
日本語ドメイン(例:例え.jp)は Punycode という別の変換方式(xn-- 形式)を使用します。このツールのパーセントエンコードとは異なる仕組みであり、ドメイン部分のエンコードには対応していません。
Q. Python での URL エンコードはどうすればよいですか?
Python では urllib.parse モジュールを使います。クエリパラメータの値をエンコードするには urllib.parse.quote(value, safe='')、クエリ文字列全体を組み立てるには urllib.parse.urlencode({'key': 'value'}) が便利です。このツールで期待値を確認してからコードを実装すると効率的です。

📚 関連書籍・商品 PR

※ 本リンクはアフィリエイト広告を含みます。


🔗 関連ツール