ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript URL エンコードと decoding_javascript スキルの使用手順

JavaScript URL エンコードと decoding_javascript スキルの使用手順

WBOY
リリース: 2016-05-16 18:29:44
オリジナル
1066 人が閲覧しました

一部の配信ページではGB2312が使用されており、受信ページではUTF8が使用されているため、受信したパラメータが元のパラメータと一致しない可能性があります。サーバー側の urlEncode 関数を使用してエンコードされた URL と、クライアント側の JavaScript の encodeURI 関数を使用してエンコードされた URL では、結果が異なります。
JavaScript でのエンコード メソッド:
escape() メソッド:
ISO ラテン文字セットを使用して、指定された文字列をエンコードします。すべてのスペース、句読点、特殊文字、およびその他の非 ASCII 文字は、%xx 形式の文字エンコーディングに変換されます (xx は、文字セット テーブル内の文字エンコーディングの 16 進数と同じです)。たとえば、スペース文字に対応するエンコーディングは です。アンエスケープ方式はその逆です。このメソッドでエンコードされない文字: @ * /

英語の説明: MSDN JScript リファレンス: エスケープ メソッドは、 すべてのスペース、句読点、アクセント記号付き文字、およびその他の非 ASCII 文字は、%xx エンコーディングに置き換えられます。xx は、文字を表す 16 進数に相当します。
たとえば、スペースは「 .」として返されます。 🎜 >Edge Core Javascript ガイド:escape 関数と unescape 関数を使用すると、文字列をエンコードおよびデコードできます。
escape 関数は、引数の 16 進エンコーディングを ISO ラテン文字セットで返します。
unescape 関数は、文字列の ASCII 文字列を返します。指定された 16 進数のエンコード値。


encodeURI() メソッド
: UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式の文字列に変換します。このメソッドでエンコードされない文字: ! @ # $& * ( ) = : / ; ' 英語の説明: MSDN JScript リファレンス: encodeURI メソッドは、
の場合、エンコードされた URI を返します。結果を decodeURI に渡すと、元の文字列が返されます。
encodeURI メソッドは、「:」、「/」、「;」、「?」の文字をエンコードしません。
これらの文字をエンコードするには encodeURIComponent を使用します。 Edge Core Javascript ガイド: 特定の文字の各インスタンスを、文字

Identifier (URI) をエンコードします。 🎜 >encodeURIComponent() メソッド
: UTF-8 エンコード形式を使用して、URI 文字列をエスケープ形式の文字列に変換します。 encodeURI() と比較して、このメソッドは / やその他の文字など、より多くの文字をエンコードします。したがって、文字列に URI の複数の部分が含まれている場合、このメソッドを使用してエンコードすることはできません。そうしないと、/ 文字がエンコードされた後で URL にエラーが表示されます。このメソッドでエンコードされない文字: ! * ( )
英語の説明: MSDN JScript リファレンス: encodeURIComponent メソッドは、エンコードされた URI を返します。結果を decodeURIComponent に渡すと、元の文字列が返されます。 🎜 >encodeURIComponent メソッドはすべての文字をエンコードするため、文字列が /folder1 /folder2 /default.html などのパスを表す場合は注意してください。スラッシュ文字はエンコードされ、Web サーバーにリクエストとして送信される場合は無効になります。文字列に複数の URI コンポーネントが含まれる場合は、encodeURI メソッドを使用します。Mozilla 開発者コア Javascript ガイド: 特定の文字の各インスタンスを 1 つ、
2 つ、または 3 つで置き換えることによって、Uniform Resource Identifier (URI) コンポーネントをエンコードします。文字の UTF-8 エンコーディングを表すエスケープ シーケンス


したがって、中国語の文字列の場合、文字列エンコーディング形式を UTF-8 形式に変換したくない場合 (元のページやtarget ページの文字セットが一貫している場合)、エスケープを使用するだけで済みます。ページが GB2312 またはその他のエンコードで、パラメーターを受け入れるページが UTF-8 エンコードされている場合は、encodeURI または encodeURIComponent を使用する必要があります。
また、javascript1.5以降にencodeURI/encodeURIComponentが導入され、javascript1.0ではエスケープが利用可能になりました。

英語の注意:escape() メソッドは、サーバー側でスペースとして解釈される文字や、フィールドにスペースを含むフォームによって生成される文字をエンコードしません。
この欠点により、可能な限り、escape() の使用を避ける必要があります。通常は、encodeURIComponent() が最適です。
encodeURI() メソッドの使用は、URI [REF] をエンコードするという点で、escape() よりも少し特殊です。 URL の一部であるクエリ文字列
。URI を使用するリソースに使用する文字列をエンコードする必要があり、特定の文字をエンコードしない必要がある場合にこのメソッドを使用します。最後に、ほとんどの
URI の単一コンポーネントをエンコードする場合、encodeURIComponent() メソッドを使用する必要があります。このメソッドは、通常はエンコードされる特定の文字をエンコードします。
このメソッドは、URI 内で有効な文字であるため、
文字をエンコードしないことに注意してください。
1。関数
1) encodeURI は、URI 文字列をエンコードした結果を返します。URL は最も一般的な URI です。
2) decodeURI は、エンコードされた URI 文字列を元の文字列にデコードして返します。
3) 例: < スクリプト言語 = " javascript " > encodeStr: http://www.amigoxie.com/index.jsp?name=amigoxie decodeStr: http://www.amigoxie.com/index.jsp?name=xind
2. 数値処理関数
1 ) parseInt は、文字列で指定された基数を整数に変換します。構文形式は次のとおりです。 parseInt(numString, [radix]) 最初のパラメータは、2 から 36 までの変換対象の文字列です。間の値は、文字列を指定するために使用されます。文字列変換に使用されるベース。 例は次のとおりです。 出力結果は次のとおりです。 デフォルトの結果: 32:32;032:26;0x32:50 バイナリに変換された結果: 32:NaN;032:0;0x32:0 8 進数に変換された結果: 32:26;032:26;0x32:0 16 進数への変換結果: 32:50;032:50;0x32:50 11001010 変換後の結果: 2 進数: 202; 16 進数: 285216784 8 進数: 2359816; 10 進数: 11001010 43abc 変換後: 43; abc43 変換後: NaN; abc 変換後: NaN
2) parseFloat メソッド このメソッドは、文字列を対応する 10 進数に変換します。例: 出力結果は次のとおりです: 4.11 5.1 3) isNaN メソッド このメソッドは、最初の 2 つのメソッドの戻り値が数値でない場合は true を返し、そうでない場合は false を返します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート