url 2025-01-16
URL エンコーディングがWeb開発に不可欠な理由
URLエンコーディングが重要な理由と、URLを正しくエンコードする方法を学びます。
URLエンコーディングは、特殊文字がインターネット上で安全に送信されることを保証します。
なぜURLエンコーディングが必要か?
URLには限られた文字セットしか含めることができません。特殊文字は以下のためにエンコードする必要があります:
- URLパースエラーの防止
- 非ASCII文字の処理
- セキュリティ脆弱性の回避
- クロスブラウザ互換性の確保
予約文字
これらの文字はURLで特別な意味を持ち、エンコードが必要です:
- ? - クエリ文字列の開始
- & - パラメータ区切り
- = - キーと値の区切り
- # - フラグメント識別子
- / - パス区切り
- : - スキーム区切り
URLエンコーディングの仕組み
文字はパーセントエンコード形式に変換されます:
1. 文字をUTF-8バイトに変換
2. 各バイトを%XX(16進数)で表現
例:
- スペース → %20(または+)
- @ → %40
- 日本語「あ」→ %E3%81%82
よくある間違い
1. 二重エンコード: すでにエンコードされたURLを再エンコード
2. エンコードしない: 特殊文字をそのまま渡す
3. 間違った関数: encodeURIとencodeURIComponentの混同
JavaScript関数
// URI全体をエンコード(予約文字を保持)
encodeURI("https://example.com/path?q=hello world")
// URIコンポーネントをエンコード(すべてをエンコード)
encodeURIComponent("hello world & goodbye")
エンコードが必要な場合
- クエリパラメータ値
- 特殊文字を含むパスセグメント
- GETリクエストのフォームデータ
- APIリクエストパラメータ
URLエンコーダーツールを使用して、URLを安全にエンコードできます。