ホームページ > 記事 > ウェブフロントエンド > URL文字列のJSエンコード/デコード解析
3 つのメソッド、escape()、encodeURI()、および encodeURIComponent() は、URL の整合性に影響を与えるいくつかの特殊な
文字をフィルタリングできます。ただし、後の 2 つは文字列を UTF-8 に変換して送信するため、ページ エンコーディングの違いによる文字化けの問題は解決されます。例: 送信ページと受信ページのエンコード形式 (Charset) が一致していない場合 (送信ページが GB2312、受信ページのエンコードが
UTF-8 であると仮定)、escape() を使用して中国語の文字列を変換して送信すると、文字化けの原因となります。
JS で URL をエンコード/デコードするためのさまざまなメソッドを以下に示します。
escape メソッド: すべてのコンピューターで読み取ることができる、エンコードされた String オブジェクトを返します。
functionscape(charString : String) : String
このメソッドでエンコードされない文字: @ * / +
説明:escape メソッドは、charstring の内容を含む文字列値 (Unicode 形式) を返します。すべてのスペース、句読点、
アクセント、およびその他の非 ASCII 文字は、%xx エンコーディングで置き換えられます。xx は、文字を表す 16 進数と同じです。
たとえば、スペースは「%20」として返されます。 (値が 255 を超える文字は、%uxxxx 形式で保存されます。)
注: エスケープ メソッドは、Uniform Resource Identifier (URI) のエンコードには使用できません。エンコードするには、encodeURI メソッドと
encodeURIComponent メソッドを使用します。
encodeURI メソッド: 有効な URI (Uniform Resource Identifier) としてエンコードされた文字列を返します。
function encodeURI(URIString : String) : String
このメソッドでエンコードされない文字: ! @ # $ & * ( ) = : / + '
説明: encodeURI メソッドは、エンコードされた URI を返します。エンコード結果をdecodeURIに渡すと、初期の
文字列が返されます。 encodeURI は、「:」、「/」、「;」、および「?」の文字をエンコードしません。これらの文字をエンコードするには
encodeURIComponent を使用してください。
encodeURIComponent メソッド: 有効なコンポーネントを URI (Uniform Resource Identifier) としてエンコードした文字列を返します。
function encodeURIComponent(encodedURIString : String) : String
このメソッドでエンコードされない文字: ! * ( ) '
説明: encodeURIComponent メソッドは、エンコードされた URI を返します。エンコード結果を
decodeURIComponent に渡すと、初期文字列が返されます。 encodeURIComponent メソッドはすべての文字をエンコードするため、
文字列が /folder1/folder2/default.html などのパスを表す場合、その文字列内のスラッシュもエンコードされることに注意してください。 request Webサーバーに送信した場合は無効となります。文字列に複数の URI コンポーネントが含まれる場合は、encodeURI メソッドを使用してエンコードしてください。
unescape メソッド:escape メソッドでエンコードされた String オブジェクトからデコードされた文字列を返します。
function unescape(charString : String) : String
説明: unescape メソッドは、charstring の内容を含む文字列値を返します。 %xx 16 進形式でエンコードされたすべての
文字は、ASCII 文字セットの同等の文字に置き換えられます。 (%uxxxx 形式でエンコードされた文字 (Unicode 文字) は、16 進エンコード xxxx の Unicode 文字に置き換えられます。)
注: unescape メソッドは、Uniform Resource Identifier (URI) のデコードに使用しないでください。代わりに decodeURI メソッドと
decodeURIComponent メソッドを使用してください。
decodeURI メソッド: エンコードされた URI (Uniform Resource Identifier) の非エンコード形式を返します。
function decodeURI(URIstring : String) : String
decodeURIComponent メソッド: URI (Uniform Resource Identifier) のエンコードされたコンポーネントのエンコードされていない形式を返します。
function decodeURIComponent(encodedURIString : String) : String
ところで: C# で URL をエンコードする方法。 。 。
エンコーディング: Server.UrlEncode(string)
デコーディング: Server.UrlDecode(string) 前述の 3 つのクライアント側エンコーディングはすべて、このメソッドを使用してバックグラウンドでデコードできます。
URL 文字列の JS エンコード/デコード解析に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。