クラスター C6: エンコードとハッシュ
URL エンコード解説: よくあるミスと対処法
URL エンコードの問題は関数の使い方より、どこでエンコードするかを誤ることや二重エンコードから生まれます。
URL 全体ではなく値だけをエンコードする
最も多いミスは URL 全体を一括でエンコードしてしまうことです。query value や path segment など、動的な値だけを対象にすべきです。
境界を間違えると、リダイレクトや API リクエストで細かな不具合が継続的に発生します。
二重エンコードと解析差を防ぐ
- 最終エンコードをクライアントとサーバーのどちらが担うか決める。
- 元値は未エンコードで保持し、送信境界で一度だけエンコードする。
- `+`、空白、Unicode、予約文字の回帰ケースを持つ。
実用的な入出力例
入力
検索値: "email + alias" 目的: API の query parameter として送る
出力
query value のみエンコード サーバー側で元の文字列へ復元