URLエンコード・デコードツール
テキストを入力し、変換方向を選んで「変換する」を押してください。
このツールでできること
入力したテキストを、URLのパスやクエリ値などの構成要素で扱えるパーセント表記へエンコードできます。エンコード済みの文字列をデコードし、結果をコピーすることもできます。URL全体の構造を保ったまま変換するツールではありません。
使い方
- 入力欄へ変換したいテキストを入力します。
- 「URLエンコード」または「URLデコード」を選びます。
- 「変換する」を押します。
- 結果を確認し、「結果をコピー」でコピーします。
入力例・出力例
こんにちは 世界をURLエンコードすると、UTF-8に基づく%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%20%E4%B8%96%E7%95%8Cになります。
a+bをデコードしても+は空白へ変換せず、そのままa+bです。フォーム形式のデコードとは異なります。
URL全体のhttps://example.com/?q=東京をエンコードすると、https%3A%2F%2Fexample.com%2F%3Fq%3D%E6%9D%B1%E4%BA%ACになります。URLの区切り記号も変換されるため、通常はURL全体ではなく、パスの一部やクエリ値だけを入力してください。
よくある利用場面
- URLのパス・クエリ値へ入れる日本語や記号をエンコードするとき
%E3%81...形式の文字列を読めるテキストへ戻すとき- 不正なパーセント表記や二重エンコードの有無を手動確認するとき
処理仕様
ブラウザ標準のencodeURIComponentとdecodeURIComponentを使い、URLの構成要素向けに変換します。英字、数字、- _ . ! ~ * ' ( )はエンコードしてもそのままです。日本語や絵文字はUTF-8に基づく%から始まる表記になり、空白は%20、+は%2Bになります。デコードでは+を空白へ置き換えません。
不正な%表記、不完全なUTF-8、単独のサロゲート文字は部分的に変換せず、エラーとして表示します。空の入力はエラーですが、空白だけの入力や変換前後が同じ文字列になる入力は処理できます。入力または変換方向を変更すると、以前の結果はクリアされます。
仕組み・詳しい解説
URL全体ではなく構成要素を変換します
URLでは、/、?、&、=、#などが構造を表す区切り記号として使われます。このツールは文字列をURLとして解析せず、入力全体を1つの構成要素として扱うため、これらの記号もエンコードします。URLへ日本語の検索語を入れる場合は、https://example.com/?q=ではなく、値となる東京だけを変換してください。
フォーム形式の+変換には対応していません
HTMLフォームなどで使われるapplication/x-www-form-urlencodedでは、空白を+で表す場合があります。このツールでは空白を%20へ変換し、デコード時の+は文字どおりの+として残します。フォームから取得した文字列を変換するときは、期待する形式と一致しているか確認してください。
RFC 3986の非予約文字とは一部異なります
RFC 3986で非予約文字とされるのは英字、数字、- . _ ~です。一方、このツールが使用するencodeURIComponentは! * ' ( )も変換せずに残します。送信先がRFC 3986の非予約文字だけを未変換で受け取る仕様の場合、このツールの出力がそのまま適合するとは限りません。追加のエンコードは行っていないため、送信先の仕様を確認してください。
二重エンコードは自動判定しません
すでにエンコードされた%E6%9D%B1%E4%BA%ACをもう一度エンコードすると、%が%25へ変わり、%25E6%259D%25B1%25E4%25BA%25ACになります。見た目だけでは元から%を含む文字列と区別できないため、自動では判定しません。変換先の仕様に合わせ、必要な段階で一度だけエンコードしてください。
詳しい定義は、ECMAScriptのencodeURIComponent仕様、WHATWG URL Standardのフォーム形式、RFC 3986で確認できます。
入力データについて
入力内容の処理はブラウザ内だけで完結します。入力したテキストをToolRollのサーバーや外部サービスへ送信せず、Cookieやブラウザストレージへ保存しません。