JavaScriptには、文字列をエンコードできる3つの機能があります。つまり、Escape、Empodeuri、Encodeuri、およびecodeuricomponentです。対応する3つのデコード関数:unescape、decodeuri、およびdecodeuricoponent。
これらの違いの簡単な紹介です。
1 Escape()関数
定義と使用法
Escape()関数は文字列をエンコードして、すべてのコンピューターで文字列を読み取ることができます。
文法
エスケープ(文字列)
パラメーターの説明
文字列が必要です。脱出またはエンコードされる文字列。
返品値
エンコードされた文字列のコピー。これらの文字の一部は、16進エスケープシーケンスに置き換えられます。
説明します
この方法では、ASCIIの文字や数字をエンコードせず、以下のASCII句読点もエンコードしません。 -_。 ! 〜 * '()。他のすべての文字は、逃げられたシーケンスに置き換えられます。
2 encodeuri()関数
定義と使用法
encodeuri()関数は、文字列をurisとしてエンコードできます。
文法
ecodeuri(uristring)
パラメーターの説明
尿が必要です。エンコードするURIまたはその他のテキストを含む文字列。
返品値
尿のコピー。その一部は、16進エスケープシーケンスに置き換えられます。
説明します
この方法では、ASCIIの文字や数字をエンコードせず、これらのASCII句読点マークをエンコードしません: - _。 ! 〜 * '()。
この方法の目的は、URIを完全にエンコードすることです。そのため、ecodeuri()関数は、URIで特別な意味を持つASCII句読点を逃れません:;/?:@&=+$、#
3 encodeuricomponent()関数
定義と使用法
encodeuricomponent()関数は、文字列をURIコンポーネントとしてエンコードできます。
文法
ecodeuricomponent(uristring)
パラメーターの説明
尿が必要です。エンコードするURIコンポーネントまたはその他のテキストを含む文字列。
返品値
尿のコピー。その一部は、16進エスケープシーケンスに置き換えられます。
説明します
この方法では、ASCIIの文字や数字をエンコードせず、これらのASCII句読点マークをエンコードしません: - _。 ! 〜 * '()。
他の文字(:;/?:@&=+$、#これらの句読点マークは、URIコンポーネントを分離するために使用されます)は、1つ以上の16分の1ヘクサデシマルエスケープシーケンスに置き換えられます。
ヒントとコメント
ヒント:Encodeuricomponent()関数とencodeuri()関数の違いに注意してください。前者は、そのパラメーターがURIの一部であると想定しています(プロトコル、ホスト名、パス、またはクエリ文字列など)。したがって、encodeuricomponent()関数は、URIの個々の部分を分離するために使用される句読点から逃げます。
4要約:
3つの機能の分析を通じて、ASCIIの文字、数字、特定のシンボルを除き、Escase()が渡されたすべての文字列を逃れることを知ることができます。したがって、URLをエンコードする場合は、この方法を使用しないことが最善です。 URIの法定文字はエンコードされて変換されるため、ecodeuri()はURI全体をエンコードするために使用されます。 Encodeuricomponentメソッドは、単一のuricomponentをエンコードするときに最も一般的に使用される必要があります(リクエストパラメーターを参照)。 URL全体に影響を与えることなく、パラメーター内の中国語と特殊文字を逃れることができます。
5つの例:
1エスケープ()
<script type = "text/javascript"> document.write(escase( "http://www.w3school.com.cn/") + "<br/>")document.write(essase( "?!=()#%&")</script>
出力:
http%3a // www.w3school.com.cn%3f%21%3d%28%29%23%25%26
2 encodeuri()
<script type = "text/javascript"> document.write(encodeuri( "http://www.w3school.com.cn/")+ "<br />")document.write(www.w3school.com.cn/my first/"))document.write(encodeuri("、/?:@&=+$# "))</script>
出力:
http://www.w3school.com.cn/http://www.w3school.com.cn/my%20first//?:@&=++$#
URL全体がエンコードされており、URLの特定の識別子はトランスコードされていません。
3 ecodeuricomponent()
例1:
<script type = "text/javascript"> document.write(encodeuricomponent( "http://www.w3school.com.cn/"))document.write( "<br />")document.write("http://www.w3school.com.cn/p 1/") /> ")document.write(encodeuricomponent("、/?:@&=+$# "))</script>
出力:
http%3a%2f%2fwww.w3school.com.cnhttp%3a%2f%2fwww.w3school.com.cn%2fp%201%2f%2c%2f%3f%3a%26%3d%2b%24%23
例2:
<スクリプト言語= "javascript"> document.write( '<a href = "http://passport.baidu.com/?logout&aid=7&u ='+encodeuriComponent(" rel = "external nofollow" http://cang.baidu.com/bruce42 "
パラメーターもURLであるため、URLのパラメーターをエンコードします。エンコードされていない場合、URL全体のジャンプに影響します。