URLエンコード・デコード変換ツール - 多彩な文字コードとエンコード方式に対応
URLやテキストに含まれる特殊文字、空白、日本語などをURLエンコード・デコード形式へ簡単に変換できます。
UTF-8を標準サポートし、UTF-16、UTF-32、ASCII、ISO-8859系、EUC系、Shift_JISなど30種類以上の文字コードに対応しています。
エンコード方式は Standard、Form、URI、Sitemap の4種類から選択できます。
Sitemap Encodeは、sitemap.xml の <loc> タグ向けにURLを最適化します。
&、<、>、'、" などのXML予約文字も自動変換されるため、そのまま sitemap.xml に貼り付けて利用できます。
文字列データをあわせて処理したい場合は、Base64エンコード・デコードツールやJSONフォーマッターも便利です。
URLエンコードエラーが発生しやすいケース
URLエンコードのトラブルは、主に3つの原因で発生します。
1つ目は、エンコード方式の選択ミスです。
フォーム送信にStandard方式を使用したり、sitemap.xmlに通常のURLエンコードを適用すると、サーバー側で正しく解釈されない場合があります。
2つ目は、文字コードの不一致です。
送信側と受信側で異なる文字コードを使用していると、文字化けやデータ欠損が発生することがあります。
3つ目は、二重エンコードです。
すでにエンコード済みのURLを再度変換すると、% が %25 に変わり、リンクが正常に動作しなくなる場合があります。重複エンコード防止オプションを有効にすると、この問題を防げます。
エンコード方式の違い - Standard・Form・URI・Sitemap
URLエンコードは用途に応じて適切な方式を選ぶことが重要です。
- Standard Encodeは最も一般的な方式で、空白を
%20へ変換します。 - Form EncodeはHTMLフォーム送信向けの方式で、空白を
+として処理します。 - URI EncodeはURL全体の構造を保持したまま、パス(path)とクエリ(query)部分のみをエンコードするため、完全なURLの変換に適しています。
-
Sitemap Encodeは sitemap.xml 専用に最適化された方式です。
通常のURLエンコードを行っても、&ではなく&が残っていると、XMLパーサーでエラーが発生することがあります。
この方式では、&→&、<→<のようにXML予約文字も自動変換されるため、そのまま<loc>タグへ貼り付けて利用できます。
用途に合わない方式を選択すると、サーバー側でパラメータが正しく解釈されなかったり、リンクが正常に動作しなくなる原因になります。
多彩な文字コードに対応 - UTF-8・EUC・Shift_JIS など
文字コードには、それぞれ文字をバイト列へ変換する独自のルールがあります。
異なる文字コードを使用すると、同じバイト値でも別の文字として解釈され、文字化けが発生します。
Web標準ではUTF-8が推奨されていますが、古いシステムや地域特有の環境では、現在でもレガシー文字コードが利用されています。
VivoldiはUTF-8、UTF-16、UTF-32、ASCII、ISO-8859系に加え、EUC系、Shift_JIS、GB2312、Big5など30種類以上の文字コードに対応しています。
送信側と受信側で同じ文字コードを使用することが、文字化けやデータ破損を防ぐ基本です。
API連携・クエリパラメータ作成時のURLエンコード
外部APIを利用する際、クエリパラメータに特殊文字や空白が含まれていると、リクエストが正しく処理されない場合があります。
URLエンコードを適用することで、サーバー側でパラメータを正確に解釈できます。
たとえば、空白は%20、&は%26、=は%3Dへ変換されます。
メール内のリンク、SNS共有URL、OAuthコールバックパラメータなどでも同じ仕組みが利用されています。
ドメインに日本語などの非ASCII文字が含まれる場合は、ドメインPunycode変換ツールも活用できます。
パーセントエンコードURLのデコードとエラー解析
メールで受け取ったリンクが%2Fや%3Aのような文字列だらけになっていたり、ブラウザのURLが読みにくい場合は、デコードタブへ貼り付けるだけで元の内容を確認できます。
開発環境では、サーバーログ解析、APIレスポンスの確認、リダイレクトパラメータのデバッグなどにも同じ方法が役立ちます。
前後の空白削除オプションを使えば、コピー時に混入した不要なスペースもまとめて処理できます。
整理したテキストやIP一覧を行単位で並び替えたい場合は、テキスト/IP並び替えツールも便利です。
よくあるご質問
URLエンコード(パーセントエンコーディング)は、URL内の空白、特殊文字、日本語などの非ASCII文字を、%と16進数の組み合わせへ変換する標準的な方式です。
WebアドレスはもともとASCII文字のみを扱う前提で設計されているため、特殊文字や日本語をそのまま送信すると、サーバーやブラウザが正しく解釈できない場合があります。
たとえば、空白は%20、&は%26へ変換されます。
エンコードは、テキストを%xx形式へ変換する処理です。
デコードはその逆で、%xx形式を人が読める文字列へ戻します。
ツール上部のタブから、エンコードとデコードを切り替えられます。
現在のWeb環境では、通常UTF-8が推奨されています。世界中の言語や特殊文字を扱える標準的な文字コードです。
古いシステムや特定地域向けサービスを利用している場合は、その環境で使用されている文字コードに合わせる必要があります。
文字コードが一致していないと、文字化けや表示崩れが発生する原因になります。
どれを選べばよいかわからない場合は、UTF-8を使用するのが最も安全です。
sitemap.xml の <loc> タグには、W3C標準に準拠した形式でエンコードされたURLを使用する必要があります。
Sitemap Encodeを選択すると、<loc>向けに最適化された形式へ変換されます。
通常のStandard Encodeとは異なり、&などのXML予約文字も正しく処理されます。
変換後のURLを、そのまま<loc>の値へ貼り付けて利用できます。
Standard Encodeは、空白を%20へ変換する方式です。REST APIの呼び出しやURLの手動生成など、一般的なURLエンコードで広く使用されます。
Form Encodeは、空白を+として処理し、HTMLのapplication/x-www-form-urlencoded形式でフォームデータを送信する際に使用されます。
これらを混在させると、サーバー側で空白が正しく解釈されない場合があります。データ送信方式に合わせて適切な方式を選択してください。
エンコード結果が異なる主な原因は、文字コードとエンコード方式の違いです。
同じ文字でも、UTF-8とレガシー文字コードでは異なるバイト値になります。たとえば、同じ文字列をUTF-8とISO-8859-1でエンコードすると、結果は大きく変わります。
同じ結果を得たい場合は、相手側のツールと同じ文字コード・エンコード方式を選択してください。
迷った場合は、文字コードをUTF-8、エンコード方式をStandard Encodeに設定するのが最も一般的で安全です。