開発者向け

URLエンコード・デコードツール

URLエンコード⇔デコードをリアルタイム変換。encodeURIComponentとencodeURIの両方式に対応。日本語や特殊文字の%変換に。

登録不要

UTF-8のパーセント変換です。エンコード入力100000文字、デコード入力・結果900000文字まで(UTF-16単位)。形式を切り替えても入力を保持します。

構成要素用はクエリの値などを個別に変換します。英数字と - _ . ! ~ * ' ( ) は残ります。URI用はさらに ; / ? : @ & = + $ , # を残します。URLの妥当性・安全性を検証する機能ではありません。

デコードはdecodeURIComponent相当の1回の変換です。前後の空白や + はそのままです。フォーム形式の + → 空白変換、文字コード判定、二重エンコードの自動解除は行いません。

入力 0文字(UTF-16単位)

結果を移す操作は、エンコード時には構成要素用の結果を使い、変換方向も切り替えます。

URLエンコード・デコードツールについて

UTF-8のパーセント変換

文字をUTF-8のバイト列へ変換し、対象の各バイトを%と16進数2桁で表します。日本語の「あ」は%E3%81%82、空白は%20です。入力と出力の文字数はUTF-16単位で数え、絵文字などは複数単位になります。

構成要素とURIの使い分け

encodeURIComponentはクエリの値などを個別に変換します。英数字と - _ . ! ~ * ' ( ) は残るため、全ての記号をエンコードする処理ではありません。encodeURIはさらに ; / ? : @ & = + $ , # を保持します。[ ] は両方式で変換されます。

URI用の処理は、URL構造やリンク先の安全性を検証せず、国際化ドメイン名をPunycodeへ変換する処理でもありません。既にある%も%25へ変わるため、エンコード済みURLへ無条件に重ねないでください。

デコードとフォーム形式の違い

decodeURIComponent相当の変換を1回行います。前後の空白は削除せず、+もそのまま保持します。application/x-www-form-urlencoded形式の解析や、+を空白へ戻す処理は行いません。Shift_JIS等の文字コードは判定せず、不正な%表記や不正なUTF-8は全体をエラーにします。

%2520は1回で%20になります。複数回の変換が必要かは元データの契約に従って判断してください。予約文字のデコードによりURLの区切りの意味が変わる場合があります。暗号化やHTMLエスケープの代用にはなりません。

入力上限・入替・出力

エンコード入力は100000文字、デコード入力と各結果は900000文字まで(UTF-16単位)です。超過時は生成せず、入力を減らすと復帰します。最大のエンコード結果もデコード側へ移せます。デコード結果が100000文字を超えるとエンコード側へ移せないため、コピーして分割してください。

改行は画面やコピー先の環境でLF・CRLFへ変わる場合があります。改行コードを保持したい場合はUTF-8保存を使ってください。保存時にBOMは追加しませんが、元データにあるBOMは保持します。形式を切り替えても入力は保持します。「結果を反対側の入力へ移す」は方向も切り替え、エンコード時は構成要素用の結果を使います。変換用テキストをこのツールからサーバーへ送信する処理はありません。ページには広告やアクセス計測等の通信があります。コピー処理が未完了の間は古い内容が遅れて書き込まれる可能性があるため、別のコピー操作を控えてください。約5秒で完了を確認できない場合は未確認の案内になりますが、バックグラウンドや端末休止中は通知が遅れることがあります。未完了の書込み自体は取り消せません。

よくある質問

Q. 2つのエンコード結果はどう使い分けますか?
クエリの値など個別の構成要素にはencodeURIComponent、URIの区切り文字を残す場合にはencodeURIを使います。どちらもURLの妥当性や安全性は検証しません。英数字や一部の記号は変換せず残ります。
Q. 空白やプラス記号はどうなりますか?
空白は両エンコード方式で%20になります。デコードでは前後の空白を削除せず、+も保持します。フォーム形式の+を空白へ変える処理ではありません。
Q. デコードできない原因は?
%の後には16進数2桁が必要で、連続するバイトは正しいUTF-8である必要があります。Shift_JIS等の自動判定はありません。孤立したサロゲートを含むUnicode文字列も拒否します。
Q. 二重エンコードは自動で戻りますか?
自動判定せず1回だけ変換します。%2520は%20へ戻ります。繰り返し変換するとURLの意味が変わる場合があるため、元データが何回エンコードされたかを確認してください。
Q. 入力上限とデータの扱いは?
エンコード入力100000文字、デコード入力と各結果900000文字まで(UTF-16単位)です。入力は形式切替で保持します。このツールは変換用テキストをサーバーへ送信しませんが、ページの広告・アクセス計測等には通信があります。

関連記事

このツールを評価
—(0件)