ブログに戻る
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を安全にエンコードできます。