ホームに戻る 開発者 URLエンコーダー

URLエンコーダー

URLのエンコード・デコード

URLエンコーダー の使い方

URLのエンコード・デコード 無料オンラインツール、登録不要、広告なし。今すぐ無料でお使いいただけます。

URLエンコードが必要な場面

URLには限られたASCII文字のセットのみ含めることができます。スペース、日本語文字、句読点、非ASCII文字はURLで安全に転送するためにパーセントシーケンス(%XX)としてエンコードする必要があります。日本語を含むWebサービスでは特に重要です。

エンコードルール:文字(A〜Z、a〜z)、数字(0〜9)、-_.~は決してエンコードされません。その他はすべて%に続く2桁の16進数でエンコードされ、その文字のUTF-8バイト値を表します。日本語1文字は通常3バイト(6桁の16進数)になります。

Frequently Asked Questions

JavaScriptのencodeURIとencodeURIComponentの違いは何ですか?

encodeURIはURL全体をエンコードし、URLで意味を持つ構造的な文字(/、?、&、#、:)はエンコードしません。encodeURIComponentは文字、数字、-_.~*以外のすべてをエンコードします。個々のパラメータ値には常にencodeURIComponentを使ってください。

スペースに+と%20の違いは何ですか?

両方ともURLエンコードでスペースを表しますが、コンテキストが異なります。%20はすべてのURLコンポーネントで正しい表現です。プラス記号はapplication/x-www-form-urlencoded(HTMLフォームデータ)でのみスペースを表します。パスセグメントでは使いません。

二重デコードなぜ問題になるのですか?

URLに%252Fが現れる場合、%2F(それ自体が/をエンコード)をエンコードしています。1回デコードすると%2F、2回デコードすると/になります。二重エンコードはURLが複数回エンコードされる時に発生します。サーバーがURLを複数回デコードするとパストラバーサル攻撃などのセキュリティ問題を引き起こします。

URLパスセグメントでエンコードすべき文字は?

特別な意味を持つ予約文字はパスセグメントでエンコードする必要があります:スペース(%20)、#(%23)、%(%25)、?(%3F)など。スラッシュ/はパス区切り文字で、パスセグメント内のリテラルのスラッシュには%2Fとしてエンコードしてください。

PunycodeとURLエンコードの関係は?

Punycodeは国際化ドメイン名(IDN)の非ASCII文字をASCII互換エンコードに変換します。「たとえば.jp」はPunycodeでドメイン部分が変換されます。パーセントエンコードとは異なり、ドメイン名にのみ適用されます。パスやパラメータには適用されません。

URLエンコード vs Base64 vs HTMLエンティティ

URLエンコード(パーセントエンコード)はデータをURLに安全にします。Base64エンコードはバイナリデータをテキストコンテキスト(メール、JSON)に安全にします。HTMLエンティティは特殊文字をHTMLに安全にします:&は&amp;に、<は&lt;になります。それぞれ同じ問題(制限された文字セットでのデータ表現)を異なる対象コンテキスト向けに解決します。コンテキストに合っていないエンコードを使うと表示エラーやセキュリティ脆弱性が生じます。

☕ Buy me a coffee