URL のエンコードとデコード
よくある罠:リンク全体を間違った関数でエンコードして、動かなくなる。ここでは何をエンコードするかを選べば、正しい関数が使われます。
すべてブラウザ内で処理されます。送信も保存もしていません。
エンコードは %XX 形式に変換し、デコードは元に戻します。
ここが最も間違えやすい点です。URL 全体を単一の値としてエンコードするとリンクが壊れます。
よくある質問
2 つのスコープの違いは?
単一の値(コンポーネント)は / : ? & = # もエスケープします。クエリ文字列の中に入れる値はこちら。URL 全体はこれらの構造文字を保ちます。
エンコードしたリンクが動かなくなりました
ほぼこれが原因です:URL 全体を「単一の値」としてエンコードすると、/ と ? が %2F と %3F になり、サーバーには 1 つの長いファイル名として見えます。
サーバーに送信されますか?
いいえ。ブラウザ内の文字列処理だけです。