URLEncodedFormat()
有効なURL文字をエスケープする理由は何ですか?
有効な文字:
- _ . ! ~ * " ( )
CF8 Docは、「[ URLEncodedFormat()
escapes]非英数字と同等の16進エスケープシーケンス」と述べています。しかし、なぜ有効なURL文字をエスケープするのですか?
URLEncodedFormat()
有効なURL文字をエスケープする理由は何ですか?
有効な文字:
- _ . ! ~ * " ( )
CF8 Docは、「[ URLEncodedFormat()
escapes]非英数字と同等の16進エスケープシーケンス」と述べています。しかし、なぜ有効なURL文字をエスケープするのですか?
それらは有効ですが、プログラミング言語に文字列をurlエンコードするように依頼すると、英数字以外のすべての文字が16進数に相当する文字に変換されるのはごく普通のことのようです。
ASPのServer.URLEncode()は同じことを行い、php urlencode()も-と_を除いて同じことを行います。また、javascriptでは、encodeURIComponent()関数は、英数字以外のすべての文字を16進数に相当するものにエンコードします。
これは、サーバー要求を形成するためにユーザー入力を使用するときにすべての英数字以外の数字をエンコードして、予期しない事態が発生しないようにすることをお勧めします。
有効なURL文字のエンコードがエラーまたは問題を引き起こしていますか?
1つの問題は、そうしないことによって、エンコードされていない文字を含むリンクを電子メールに埋め込んだ場合、電子メールソフトウェアがリンクを2行に分割することを決定する可能性があることです。
ただし、完全にエンコードされたURLを使用すると、この可能性は大幅に減少します。しかしそれを見るただ一つの方法。
少なくとも「URLをアンカータグのリンクとして使用するときにエンコードしておくと便利だ」という場合はわかりました。