フロントページのエンコーディング


Scape()、encodeURI()、encodeURIComponent()の違いは詳しく分かります.JavaScriptの中には、文字列をエンコードできる関数が三つあります.
これらの違いを簡単に紹介します.
1、escape()関数escape()関数は文字列をエンコードすることができ、このようにすべてのコンピュータで文字列を読み取ることができます.
文法:escapeパラメータ:stringが必要です.変換または符号化する文字列.
戻り値:符号化されたstringのコピー.一部の文字は16進数の変換シーケンスに置き換えられます.
この方法はASCII文字と数字をエンコードしないし、次のASCII句読点をエンコードしないと説明しています.()他のすべての文字は変換シーケンスに置き換えられます.
2、encodeURI()関数
エンコーディング()関数は文字列をURIとしてエンコードすることができます.
文法:encodeURI(URIstring)
パラメータ:URIstringが必要です.一つの文字列には、URIまたは他の符号化するテキストが含まれています.
戻り値:URIstringのコピーで、一部の文字は16進数の変換シーケンスに置き換えられます.
説明:この方法はASCII文字と数字を符号化しないし、ASCII句読点も符号化しない.()
この方法はURIを完全に符号化することを目的としており、URIには以下のような特別な意味を持つASCII句読点に対して、エンコーディング()関数は転送されません.
3 encodeURIComponent関数は、文字列をURIコンポーネントとしてエンコードすることができます.
文法:encodeURIComponent(URIstring)
パラメータ:URIstringが必要です.一つの文字列は、URIコンポーネントまたは他のコード化されるテキストを含んでいます.
戻り値:URIstringのコピーで、一部の文字は16進数の変換シーケンスに置き換えられます.
説明:この方法はASCII文字と数字を符号化しないし、ASCII句読点も符号化しない.()
他の文字(例:;/?:@@=+、葏などのURIコンポーネントを区切るための句読点)は、1つまたは複数の16進数の変換シーケンスによって置き換えられます.
ヒントとコメントのヒント:エンコデコレーション関数とエンカウント関数の違いに注意してください.前者は、そのパラメータがURIの一部(プロトコル、ホスト名、パス、またはクエリ文字列など)であると仮定しています.したがって、エンコーディング関数は、URIの各部分を区切る句読点記号に変換される.
4まとめ:
三つの関数を分析することによって、ASCII文字、数字と特定の記号以外に、伝達された文字列を全部変換符号化しますので、URLを符号化したいなら、この方法を使わないほうがいいです.また、エンコーディングはURI全体を符号化するために使用され、URI中の合法的な文字は符号化変換されない.一つのURIComponentを符号化する際には、パラメータの中の中国語、特殊文字を用いて変換することができ、URL全体に影響を与えない.
5例:
1 escape()
document.write(escape("http://www.w3school.com.cn/") + "
"
) document.write(escape("?!=()#%&"))
出力:
http%3 A//www.w 3 school.com.cn
%3 F%21%3 D%28%29%23%25%26
2 encodeURI()
document.write(encodeURI("http://www.w3school.com.cn/")+ "
"
) document.write(encodeURI("http://www.w3school.com.cn/My first/")) document.write(encodeURI(",/?:@&=+$#"))
出力:
http://www.w3school.com.cn/
http://www.w3school.com.cn/My%20first/
,/?:@@=+$
URL全体を符号化し、URLの特定識別子はトランスコードされない.
3 encodeURIComponent()
例1:
document.write(encodeURIComponent("http://www.w3school.com.cn/"))

document.write("
"
) document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/")) document.write("
"
) document.write(encodeURIComponent(",/?:@&=+$#"))
出力:
http%3 A%2 F%2 Fwwww.w 3 school.com.cn http%3 A%2 Fwww.2 Fwww.w 3 school.com.cn%2 Fp%201%2 F%2 F%2 F%3 F%3 A%26%3 D%2 B%24%23
例2:
document.write('encodeURIComponent("http://cang.baidu.com/bruce42")+'">  ');
URLのパラメータをエンコードします.パラメータもURLですので、エンコードしないとURL全体のジャンプに影響します.