encodeURIとencodeURIComponentとescapeの違いと応用について話します
3382 ワード
まず、この3つのものはすべて符号化に用いられることを知っています.まず、encodeURI()とencodeURIComponent()です.この2つはurlを変換するときに符号化復号に用いられるものです.
符号化があれば復号があり、復号はdecodeURI()とdecodeURIComponent()であり、彼らの使い方は簡単で、パラメータにトランスコードする文字を持ち込むことで目的を実現することができる.
次のようになります.
encodeURI(「符号化する文字です」)decodeURI(「復号する文字です」)encodeURIComponent(「符号化する文字です」)decodeURIComponent(「復号する文字です」)
encodeURI()とencodeURIComponent()の違いは大きくありません
主な違いは次のとおりです.
EncodeURI符号化されていない文字は82文字あります:!,#,$,,,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
EncodeURIComponent符号化されていない文字は71文字あります:!,',(,),*,-,.,_,~,0-9,a-z,A-Z
EncodeURIは主にアドレスバーに直接値を割り当てる場合に使用されます.
location.href=encodeURI("http://www.cnblogs.com/Tezml/");
一方、encodeURIComponentはurlのqueryパラメータに主に使用されます.
location.href="http://www.cnblogs.com/Tezml/test.php?a=「+encodeURIComponent("私は私です");
escapeは、上の2つに比べて違います
Escape()は符号化であり、unescape()は復号である.
Escapeメソッド
Stringオブジェクトをすべてのコンピュータで読み取り可能に符号化します.
escape(charString)
必須charstringパラメータは、符号化する任意のStringオブジェクトまたはテキストです.
説明
Escapeメソッドはcharstringコンテンツを含む文字列値(Unicodeフォーマット)を返します.すべてのスペース、句読点、アクセント記号、その他の非ASCII文字は%xx符号化で置き換えられます.
ここでxxは、その文字を表す16進数に等しい.たとえば、スペースは「%20」を返します.
文字値255より大きいものは%uxxxx形式で格納されます.
Escape符号化されない文字は69文字:*,+,-,,,/,@,,0-9,a-z,A-Z
注意escape法は、統合リソース識別子(URI)を符号化するために使用できない.その符号化にはencodeURIおよびencodeURIComponentメソッドを使用する必要があります.
最後の前のセグメントは符号化復号のdemoについて
まとめ
Escape()はURL符号化に直接使用することはできません.その本当の役割は、1文字のUnicode符号化値を返すことです.例えば「春節」の戻り結果は%u 6625%u 8282であり、escape()は「+」符号化が主に漢字符号化に用いられず、現在は使用が提唱されていない.
EncodeURI()は、Javascriptで実際にURLを符号化するために使用される関数です.urlアドレス全体を符号化するが、特殊な意味の記号「;/?:@&=+$,#」も符号化しない.対応する復号関数は、decodeURI()です.
EncodeURIComponent()は、";/?:@&=+$,#"などの特殊文字を符号化できます.対応する復号関数はdecodeURIComponent()である.
&記号付きのURLを渡す場合はencodeURIComponent()
符号化があれば復号があり、復号はdecodeURI()とdecodeURIComponent()であり、彼らの使い方は簡単で、パラメータにトランスコードする文字を持ち込むことで目的を実現することができる.
次のようになります.
encodeURI(「符号化する文字です」)decodeURI(「復号する文字です」)encodeURIComponent(「符号化する文字です」)decodeURIComponent(「復号する文字です」)
encodeURI()とencodeURIComponent()の違いは大きくありません
主な違いは次のとおりです.
EncodeURI符号化されていない文字は82文字あります:!,#,$,,,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
EncodeURIComponent符号化されていない文字は71文字あります:!,',(,),*,-,.,_,~,0-9,a-z,A-Z
EncodeURIは主にアドレスバーに直接値を割り当てる場合に使用されます.
location.href=encodeURI("http://www.cnblogs.com/Tezml/");
一方、encodeURIComponentはurlのqueryパラメータに主に使用されます.
location.href="http://www.cnblogs.com/Tezml/test.php?a=「+encodeURIComponent("私は私です");
escapeは、上の2つに比べて違います
Escape()は符号化であり、unescape()は復号である.
Escapeメソッド
Stringオブジェクトをすべてのコンピュータで読み取り可能に符号化します.
escape(charString)
必須charstringパラメータは、符号化する任意のStringオブジェクトまたはテキストです.
説明
Escapeメソッドはcharstringコンテンツを含む文字列値(Unicodeフォーマット)を返します.すべてのスペース、句読点、アクセント記号、その他の非ASCII文字は%xx符号化で置き換えられます.
ここでxxは、その文字を表す16進数に等しい.たとえば、スペースは「%20」を返します.
文字値255より大きいものは%uxxxx形式で格納されます.
Escape符号化されない文字は69文字:*,+,-,,,/,@,,0-9,a-z,A-Z
注意escape法は、統合リソース識別子(URI)を符号化するために使用できない.その符号化にはencodeURIおよびencodeURIComponentメソッドを使用する必要があります.
最後の前のセグメントは符号化復号のdemoについて
Tezml_
var chinese=" "
var english="place tall me englash"
var Monster=":#&$/@"
$("#wz1").html(encodeURI(chinese))// %E8%AF%B7%E5%8F%AB%E6%88%91%E4%B8%AD%E6%96%87
$("#wz2").html(decodeURI(chinese))//
$("#wz3").html(encodeURI(english))// place%20tall%20me%20englash
$("#wz4").html(decodeURI(english))// place tall me englash
$("#wz5").html(encodeURIComponent(Monster))// %3A%23%26%24%2F%40
$("#wz6").html(encodeURI(Monster))// :#&$/@
$("#wz7").html(escape(chinese))// %u8BF7%u53EB%u6211%u4E2D%u6587
$("#wz8").html(escape(english))// place%20tall%20me%20englash
$("#wz9").html(escape(Monster))// %3A%23%26%24/@
$("#wz10").html(unescape(chinese))//
$("#wz11").html(unescape(english))// place tall me englash
$("#wz12").html(unescape(Monster))// :#&$/@
まとめ
Escape()はURL符号化に直接使用することはできません.その本当の役割は、1文字のUnicode符号化値を返すことです.例えば「春節」の戻り結果は%u 6625%u 8282であり、escape()は「+」符号化が主に漢字符号化に用いられず、現在は使用が提唱されていない.
EncodeURI()は、Javascriptで実際にURLを符号化するために使用される関数です.urlアドレス全体を符号化するが、特殊な意味の記号「;/?:@&=+$,#」も符号化しない.対応する復号関数は、decodeURI()です.
EncodeURIComponent()は、";/?:@&=+$,#"などの特殊文字を符号化できます.対応する復号関数はdecodeURIComponent()である.
&記号付きのURLを渡す場合はencodeURIComponent()