javascriptのencodeURI関数に有効な用途はありますか?これまでにencodeURIを使用する必要がありますか?
- 完全なURI
- のいずれかであるあなたがURIに入れたいいくつかの断片を、:私の知る限り、あなたが持っている必要がありますいずれかのHTTPリクエストを作成しようとしているとき、言うことができるように
ユニコード文字列またはUTF-8バイトシーケンス
最初のケースでは、明らかに要求する必要はありません。注:実際にパラメータとして渡す場合(例:?url = http ...)、実際にはURIのように見える2番目のケースのインスタンスがあります。第2のケースで
、あなたは常にはUTF-8にUnicode文字列を変換し、URIに追加する前すべて文字をエスケープするencodeURIComponentでを呼び出す必要があります。 (Unicode文字列ではなくUTF-8バイトシーケンスを使用している場合は、convert-to-utf8ステップをスキップできます)。
私が何か逃してしまったと仮定すると、私はencodeURIの有効な使用を見ることができません。あなたがそれを使うと、あなたは無効なURIを構築した後、事実の後にそれを「浄化」しようとします。文字通りどの文字が意図されていないか、そしてエスケープされることは意図されていないので。
私はescape()の使用に対して多くのアドバイスを見ましたが、encodeURIを落胆させる人はいません。私は有効な使い方がないのですか?
「URIに入れたい断片」は、「URIコンポーネント」と呼ぶことができます。 「2番目のケースでは、JavaScriptではなく、常にUnicode文字列をUTF-8に変換する必要があります。 'encodeURIComponent'は文字列を自動的にUTF-8に変換します(そして' decodeURIComponent'はUTF-8オクテットをUnicode文字に変換します)。 – mgiuca