m moji kit v1.0.9
変換 日本語テキスト → URL エンコード

日本語を URL エンコードする

日本語などの非 ASCII 文字を URL に含められる形に変換する方法です。UTF-8 ベースの percent-encoding を解説します。

このページで変換する

%
URL エンコード/デコード
このページで直接使えます
ツールページで開く →

よく使う組み合わせ

→ Base64 エンコード/デコード URL デコード → Base64 次へ
JSON フォーマッタ → JSON → URL エンコード 元へ

解説

URL のクエリやパスに日本語を含める場合、各文字を UTF-8 バイト列に変換してから %xx 形式の percent-encoding に置き換えます (RFC 3986)。「あ」(U+3042) は UTF-8 で 3 バイトなので %E3%81%82 の 9 文字に膨らみます。 また、encodeURI (URL 全体用) と encodeURIComponent (クエリ値用) で動作が異なります。前者は :, /, ?, & などの構造文字を残し、後者はそれらもエスケープします。クエリ値には後者を使うのが原則です。

サンプル入力(日本語テキスト)

東京 渋谷区

サンプル出力(URL エンコード)

%E6%9D%B1%E4%BA%AC%20%E6%B8%8B%E8%B0%B7%E5%8C%BA

使うときのコツ

  • · クエリ値は encodeURIComponent、URL 全体の正規化は encodeURI を使い分ける
  • · x-www-form-urlencoded ではスペースを + に置換する(percent-encoding では %20)
  • · Shift_JIS の URL エンコード(古い API)は本ツールでは対応外。専用処理が必要

よくある質問

%20 と + の違いは?
RFC 3986 の percent-encoding では空白を %20 に、HTML フォームの application/x-www-form-urlencoded では + にします。デコード時にどちらを採用するか確認が必要です。
ブラウザのアドレスバーに日本語のままで動くのは?
ブラウザが内部で UTF-8 でエンコードしてサーバーに送信します。表示は日本語のままですが、HTTP リクエストには encoded 形式で乗ります。
Shift_JIS で URL エンコードしたい
古い API(一部の検索ボックス等)が要求する場合があります。本ツールは UTF-8 のみ。Shift_JIS が必要な場合は文字コード変換ツールで Shift_JIS バイト列を取得してから、自前で percent-encoding する処理が必要です。
デコード後に文字化けする
元の URL が UTF-8 以外でエンコードされている可能性があります。サーバーのログ形式を確認してください。
: や / もエンコードすべき?
用途次第です。URL 全体の構造区切りとして使う場合(例: https://example.com/path)は残し、値として使う場合(例: redirect=https%3A%2F%2F...)はエンコードします。
URL の長さに制限はある?
RFC 上は明確な上限はありませんが、実装上は 2KB 程度が一般的な閾値です。長すぎる URL はサーバーが拒否したり、ブラウザのバーで切れたりします。

関連ツール

%
URL エンコード/デコード
URL の percent-encoding を双方向に変換します。