ホームページ  >  記事  >  ウェブフロントエンド  >  jsで文字列をエンコードする方法まとめ

jsで文字列をエンコードする方法まとめ

高洛峰
高洛峰オリジナル
2016-12-07 11:12:571059ブラウズ

JavaScript を使用して URL 文字列をエンコードする場合、escape()、encodeURI()、および encodeURIComponent() の 3 つのメソッドは、URL の整合性に影響を与える一部の特殊文字をフィルターできます。

しかし、後の 2 つは文字列を UTF-8 に変換して送信するため、ページのエンコーディングの不一致による文字化けの問題は解決されます。

例: 送信ページと受信ページのエンコード形式 (Charset) が一致していない場合 (送信ページが GB2312、受信ページのエンコードが UTF-8 であると仮定)、escape() を使用して中国語の文字列を変換および送信します。文字化けの原因となります。

JS で URL をエンコード/デコードするためのさまざまなメソッドを以下に示します。

1. Escape メソッド: すべてのコンピューターで読み取ることができるエンコードされた String オブジェクトを返します。

functionscape(charString : String) : String

このメソッドによってエンコードされない文字: @ * / +

説明:escape メソッドは、charstring の内容を含む文字列値 (Unicode 形式) を返します。すべてのスペース、句読点、

アクセント、およびその他の非 ASCII 文字は、%xx エンコーディングで置き換えられます。xx は、文字を表す 16 進数と同じです。

たとえば、スペースは「%20」として返されます。 (255 を超える文字値は %uxxxx 形式で保存されます。)

注: エスケープ メソッドは、Uniform Resource Identifier (URI) のエンコードには使用できません。 encodeURI メソッドと encodeURIComponent メソッドを使用してエンコードする必要があります。

2. encodeURI メソッド: 有効な URI (Uniform Resource Identifier) としてエンコードされた文字列を返します。

function encodeURI(URIString : String) : String

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

説明: encodeURI メソッドは、エンコードされた URI を返します。エンコード結果をdecodeURIに渡すと元の文字列が返されます。 encodeURI は、「:」、「/」、「;」、および「?」の文字をエンコードしません。これらの文字をエンコードするには

encodeURIComponent を使用してください。

3. encodeURIComponent メソッド:Uniform Resource Identifier (URI) としてエンコードされた有効なコンポーネントの文字列を返します。

function encodeURIComponent(encodedURIString : String) : String

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

説明: encodeURIComponent メソッドは、エンコードされた URI を返します。エンコード結果をdecodeURIComponentに渡すと初期文字列が返されます。 encodeURIComponent メソッドはすべての文字をエンコードするため、

文字列が /folder1/folder2/default.html などのパスを表す場合、その文字列内のスラッシュもエンコードされることに注意してください。 request Webサーバーに送信した場合は無効となります。文字列に複数の URI コンポーネントが含まれている場合は、encodeURI メソッドを使用してそれらをエンコードします。

4. unescape メソッド: エスケープ メソッドでエンコードされた String オブジェクトからデコードされた文字列を返します。

function unescape(charString : String) : String

説明: unescape メソッドは、charstring の内容を含む文字列値を返します。 %xx 16 進形式でエンコードされたすべての

文字は、ASCII 文字セットの同等の文字に置き換えられます。 (%uxxxx 形式でエンコードされた文字 (Unicode 文字) は、16 進エンコード xxxx の Unicode 文字に置き換えられます。)

注: unescape メソッドは、Uniform Resource Identifier (URI) のデコードに使用しないでください。代わりに、decodeURI メソッドと decodeURIComponent メソッドを使用してください。

5. decodeURI メソッド: エンコードされた URI (Uniform Resource Identifier) の非エンコード形式を返します。

function decodeURI(URIstring : String) : String

decodeURIComponent メソッド: URI (Uniform Resource Identifier) のエンコードされたコンポーネントのエンコードされていない形式を返します。

function decodeURIComponent(encodedURIString : String) : String

ところで: C# で URL をエンコードする方法。 。 。

Encoding: Server.UrlEncode(string)

Decoding: Server.UrlDecode(string) 最初の 3 つのクライアント側エンコーディングは、このメソッドを使用してバックグラウンドでデコードできます。

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