JSでURLをトランスコードしてデコードします.

1811 ワード

1. escapeとunescape
エスケープ()は直接URLコードには使えませんが、その役割はユニックコードの値を返すことです.
unicode文字セットを使用して指定した文字列を0-255以外で符号化します.すべてのスペース記号、句読点、特殊文字、およびASCII以外の関連文字は、%xx形式の文字コードに変換されます.例えば、スペース記号に対応するコードは%20です.escape符号化されていない文字は69文字あります.*,+,-,,,/,@,_,0-9,a-z,A-Z
escape()関数は、jsで文字列をエンコードするために使われます.
  var url = "http://localhost:8080/pro?a=1&b=  &c=aaa";
  escape(url)  -->   http%3A//localhost%3A8080/pro%3Fa%3D1%26b%3D%u5F20%u4E09%26c%3Daaa   
2. encodeURIとdecodeURI
URI文字列をUTF-8符号化形式でescapeの各種類の文字列に変換します.エンコーディングしない文字は82文字あります.(,),*,+,,,,-,/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0-9,a-z,A-Z
 エンコーディング()は全体のurlコードに使用されます.
  var url = "http://localhost:8080/pro?a=1&b=  &c=aaa";
  encodeURI(url)  -->   http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa 
3.encodeURIComonentとdecodeURIComponent
encodeURI()との違いは、URL全体を符号化するのではなく、URLの構成部分を個別に符号化するためのものである.
したがって、「;//?:@@=+、啱」は、これらはエンコーディングされていない記号で、エンコーディングされています.具体的な符号化方法については、両者は同じです.URI文字列をUTF-8符号化フォーマットでescape形式の文字列に変換します.
エンコデコレーションはパラメータの伝達に用いられ、パラメータには特殊な文字が含まれています.
例1
  var url = "http://localhost:8080/pro?a=1&b=  &c=aaa";
  encodeURIComponent(url) --> http%3A%2F%2Flocalhost%3A8080%2Fpro%3Fa%3D1%26b%3D%E5%BC%A0%E4%B8%89%26c%3Daaa

例2
  
  var url = "http://localhost:8080/pp?a=1&b="+ paramUrl,
  var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";
      encodeURIComponent()      
  encodeURIComponent(paramUrl) --> http://localhost:8080/pp?a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3