ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript_javascript スキルにおけるいくつかの URL エンコード方式の比較

Javascript_javascript スキルにおけるいくつかの URL エンコード方式の比較

WBOY
WBOYオリジナル
2016-05-16 16:18:101542ブラウズ

JavaScript で URL 文字列をエンコードするには、escape()、encodeURI()、encodeURIComponent() などのメソッドがいくつかあります。これらのエンコーディングはさまざまな役割を果たします。

escape() メソッド:

ISO ラテン文字セットを使用して、指定された文字列をエンコードします。すべてのスペース、句読点、特殊文字、およびその他の非 ASCII 文字は、%xx 形式の文字エンコーディングに変換されます (xx は、文字セット テーブル内の文字エンコーディングの 16 進数と同じです)。たとえば、スペース文字に対応するエンコーディングは です。

このメソッドでエンコードされない文字: @ * /

encodeURI() メソッド:

UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式文字列に変換します。

このメソッドでエンコードされない文字: ! @ # $& * ( ) = : / ;

encodeURIComponent() メソッド:

UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式の文字列に変換します。 encodeURI() と比較して、このメソッドは / やその他の文字など、より多くの文字をエンコードします。したがって、文字列に URI の複数の部分が含まれている場合、このメソッドを使用してエンコードすることはできません。そうしないと、/ 文字がエンコードされた後で URL にエラーが表示されます。

このメソッドでエンコードされない文字: ! * ( ) '

したがって、中国語の文字列の場合、文字列エンコーディング形式を UTF-8 形式に変換したくない場合 (たとえば、元のページとターゲット ページの文字セットが同じである場合)、使用する必要があるのは、逃げる。ページが GB2312 またはその他のエンコードで、パラメーターを受け入れるページが UTF-8 エンコードされている場合は、encodeURI または encodeURIComponent を使用する必要があります。

また、javascript1.5以降にencodeURI/encodeURIComponentが導入され、javascript1.0ではエスケープが利用可能になりました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。