URL機能のエスケープをコードする3つのJS()、encodeURI()、encodeURIComponentで()の紹介[ターン]
約ブラウザ機能エンコードされたエスケープ()、encodeURI()、encodeURIComponentで()
1)(エスケープ
エスケープ()関数は、最古の1つの符号化JSあります。この関数は廃止されていますが、歴史的な理由によるものに、多くの場所はまだそれを使用していますが、話に開始する必要があります。
実際には、エスケープ()直接URLエンコードのために使用することはできません、その本当の役割は、Unicode文字エンコーディングの値を返すことです。例えば、「春祭り、」リターン結果は%u6625%u8282、Unicode文字に集中された、「春」は、第1 6625(16進数)の文字、「日」は、第1 8282(16進数)の文字であります。
例えば:
ジャバスクリプト:エスケープ( "春");
//出力"%u6625%u8282"
のjavascript:エスケープ( "こんにちはワード");
//出力は"hello%20word"
注意が必要な二つの領域があります。
まず第一には、元のページがエンコードされているものに関係なくは、Javascriptのコードと、彼らはすべてのUnicode文字になります。つまり、入力および出力Javascipt機能では、デフォルトではUnicode文字です。また、これは次の2つの関数に適用されます。
JavaScriptを:エスケープ( "\ u6625 \ u8282");
//出力"%u6625%u8282"
はJavaScript:アンエスケープ( "%u6625%u8282");
//出力"春祭り"
はJavaScript:アンエスケープ( "\ u6625 \ u8282") ;
//出力は「春祭り」
第二に、()しない「+」コードを逃れます。しかし、我々は、ページがフォームが送信される際に、スペースがある場合、それは+文字に変換されますことを知っています。サーバ処理データは、スペースの数に加工すると+なります。だから、使用する際に注意してください。
2、encodeURI()
それはとてもURLで特別な意味を持っているいくつかの他のシンボルのための共通のシンボルに加えて、エンコードされたURL全体を見て「; /?:@&= + $、#、」エンコードされていません。そのフォームUTF-8出力シンボルを符号化した後、各バイトの前に%を加算します。
それは単一引用符のコードをしないことに注意してください。
3、encodeURIComponentで()
最後の機能はJavascriptエンコーディングencodeURIComponentです()。encodeURIの差は()URLのその部分のために符号化された全体のURLに対して個別に符号化されず、です。
そのため、 "; /?:@&= + $、#、" これらは(encodeURIでエンコードされたシンボルではありません)、encodeURIComponentでは、()すべてでエンコードされています。特定の符号化方式のように、2つは同じです。
それは()は、decodeURIComponentをデコードする対応する機能です。
encodeURIComponentで()は、より完全であるとencodeURI()を比較しました。
例えば:
< HTML > < 身体> < スクリプトタイプ= "テキスト/ javascriptの" > VAR TEST1 = " http://www.haorooms.com/My最初の/ " ; VAR NN = encodeURI(TEST1)。 varが今= decodeURI(TEST1)を、 VaRのTEST1 = " http://www.haorooms.com/My最初の/ " ; VAR BB = encodeURIComponentで(TEST1)。 VAR nnow = は、decodeURIComponent(BB)。 </ スクリプト> </ボディ> </ HTML >
出力は次のようになります。
http://www.haorooms.com/My%20first/
http://www.haorooms.com/My最初の/
のhttp%3A%2F%2Fwww.haorooms.com%2FMy%20first%2F
のhttp:// WWW。 haorooms.com/My最初/
概要
直接URLエンコードのために使用することはできませんエスケープは()、その本当の役割は、Unicode文字エンコーディングの値を返すことです。「春祭りは、」リターン結果は%u6625%u8282 ,,エスケープ()「+」エンコーディングは、主に中国の文字符号化に使用されていないされているような、それが廃止されます。
encodeURI()は、実際のURLエンコードされた関数へのJavascriptです。全体のURLアドレスが、特別な意味のシンボルを符号化する「; /?:@&= + $、#、」エンコードされていません。復号化機能に対応することである:decodeURI()。
encodeURIComponentで()をコード "; /?:@&= + $、#" これらの特殊文字。復号化機能に対応することは、decodeURIComponentです()。
URLはアンパサンドで送信する場合は、その(encodeURIComponentでを使用します)