そもそも、なぜエンコードが必要なのか
URLの規格(RFC 3986)では、URLに直接書ける文字が英数字と一部の記号だけに限られています。日本語・スペース・&・? などをそのままURLに入れると、区切り文字と誤解されたり、途中で切れたりします。
そこで、使えない文字を「UTF-8のバイト列 → %XX(16進数2桁)」に変換して安全に運びます。たとえば「あ」は %E3%81%82 になります。日本語1文字がUTF-8で3バイトなので、エンコードすると9文字に膨らむわけです。
URLをエンコード・デコードできます。日本語や特殊文字の変換に対応しています。
設定
このツールについて
はい、完全無料です。登録やサインインも不要です。
いいえ。すべての処理はブラウザ内で完結します。入力内容がサーバーに送信されることはありません。
はい。日本語・特殊文字を含む文字列をURLエンコード(%XX形式)に変換できます。
このツールはencodeURIComponent相当の変換を行います。URLのパラメータ値として安全に使える形式に変換します。
はい、スマートフォンのブラウザからもご利用いただけます。アプリのインストールは不要です。
URLエンコードは「URLに使えない文字を %XX の形に置き換える」変換です。仕組み自体はシンプルですが、encodeURI と encodeURIComponent の使い分けや、スペースの扱い、二重エンコードなど、実務で足をすくわれやすいポイントがいくつかあります。ここでは、変換した結果を正しく扱うためのコツを整理します。
URLの規格(RFC 3986)では、URLに直接書ける文字が英数字と一部の記号だけに限られています。日本語・スペース・&・? などをそのままURLに入れると、区切り文字と誤解されたり、途中で切れたりします。
そこで、使えない文字を「UTF-8のバイト列 → %XX(16進数2桁)」に変換して安全に運びます。たとえば「あ」は %E3%81%82 になります。日本語1文字がUTF-8で3バイトなので、エンコードすると9文字に膨らむわけです。
JavaScriptには2つのエンコード関数があり、変換する範囲が違います。
: / ? # & = などの記号も含めてすべてエンコード。「パラメータの値ひとつ」を変換する用途。本ツールはこちら相当です。ユーザー入力をクエリパラメータに乗せるときは encodeURIComponent 相当が正解です。?q= の後ろに入れる値を本ツールで変換すれば、記号が混じっても壊れません。
URLでスペースを表す方法は2通りあり、場所によって使い分けます。
%20:RFC 3986 の標準。パス部分(/path/)やクエリで広く使える。本ツールはこちらを出力します。+:フォーム送信(application/x-www-form-urlencoded)だけの歴史的な略記。注意したいのは、クエリで +(プラス記号そのもの)を送りたい場合。電話番号の +81 などをそのまま書くとスペースに解釈されることがあるため、%2B とエンコードする必要があります。
すでにエンコード済みの文字列をもう一度エンコードすると、% 自体が %25 に変換され、%E3%81%82 が %25E3%2581%2582 になってしまいます。受け側は元に戻せず、文字化けや404の原因になります。
ログからコピーしたURLを再度変換するときや、リダイレクト処理を挟むときに起こりやすい事故です。「この文字列はもうエンコードされているか?」を一度確認してから変換しましょう。デコード側で %25 が出てきたら、二重エンコードのサインです。
URLエンコードは「バイト列を %XX で表す」規則なので、元の文字コードによって結果が変わります。
%E3%81%82%82%A0本ツールは UTF-8 前提でデコードします。古いシステムが吐いた Shift_JIS ベースのエンコード文字列を渡すと、正しく戻らず文字化けすることがあります。背景をもう少し詳しく知りたい方は URLエンコード完全ガイド や 文字コードと文字化けの基礎 もあわせてどうぞ。
このサイトでは、アクセス解析や広告配信のために Cookie を使用します。詳しくはプライバシーポリシーをご覧ください。