uriコーディング

4682 ワード


関連する関数は次のとおりです.(いずれもグローバル関数)
encodeURI(URIString): URI

decodeURI(URIString)



encodeURIComponent(s): URI 

decodeURIComponent(s)

 
 
EncodeURI符号化規則:
1、encodeURI()に対して、ASCIIアルファベット、数字、「-.!~*'()」などの句読点は符号化されない.
2、encodeURIはURIを符号化するために使用されるため、uriにおいて特別な意味を持つASCII句読点も符号化されない.例えば:;/?:@=+$,#
3、uriの他の文字は対応するutf-8符号化に変換される.
1、0001—007 E(ASCII文字)は%xxに符号化される
2、<80—u 07 ff間のunicode文字、%x%xxで符号化
3、u 0800—uffff間のunicode文字はいずれも%xx%x%xx%xxと符号化される
4、この方法で符号化する場合、URIに含まれていないことを確認する.などの文字、そうでない場合はencodeURIComponentを使用してuriの各部分を個別に符号化する必要があります
 
encodeURIComponent:
1、ASCIIアルファベット、数字、「-.!~*'()」などの句読点は符号化されない.
  2、/? : @ = + $ , #uriを区切るためにコードされます
 
注意:
1、ECMAScript 3の前にescape()とunescapeを使用してencodeURIのような符号化を実行できますが、現在は破棄されています.
2、encodeURIComponent設定パラメータはURIの一部であるため、URIの異なる部分を分割するための文字は符号化される
3、URIには/?:@=+$が含まれている等の場合はencodeURIComponentでuriの各部を個別に符号化する
4、encodeURIComponentで符号化した後、decodeURIで復号してもよいし、decodeURIcomponentで復号してもよい
 
  
eg:
 
var uriEncode = encodeURI("http://www.cnblogs.com/wishyouhappy");

var uriDeocde = decodeURI(uriEncode);

console.log("uriEncode: " + uriEncode); //uriEncode: http://www.cnblogs.com/wishyouhappy 

console.log("uriDeocde: " + uriDeocde); //uriDeocde: http://www.cnblogs.com/wishyouhappy 



//,/?:@&=+$# 

var uriEncode = encodeURI(",/?:@&=+$#");

var uriDeocde = decodeURI(uriEncode);

console.log("uriEncode: " + uriEncode); //,/?:@&=+$# 

console.log("uriDeocde: " + uriDeocde); //,/?:@&=+$# 





// %20,  %xx%xx%xx

var uriEncode = encodeURI("http://www.cnblogs.com?name = ' '");

var uriDeocde = decodeURI(uriEncode);

console.log("uriEncode: " + uriEncode); //http://www.cnblogs.com?name%20=%20'%E6%B5%81%E5%85%89' 

console.log("uriDeocde: " + uriDeocde); // http://www.cnblogs.com?name = ' ' 





// encodeURIComponent uriDeicode uriDecodeComponent 

var uriEncode = encodeURIComponent("Are you happy?");

var uriDeocde = decodeURI(uriEncode);

var uriDecodeComponent = decodeURIComponent(uriEncode);

console.log("uriEncode: " + uriEncode); // Are%20you%20happy%EF%BC%9F 

console.log("uriDeocde: " + uriDeocde); //Are you happy?

console.log("uriDecodeComponent: " + uriDecodeComponent); //Are you happy?





var uriEncode = encodeURIComponent(",/?:@&=+$#");

var uriDecodeComponent = decodeURIComponent(uriEncode);

console.log("uriEncode: " + uriEncode); //%2C%2F%3F%3A%40%26%3D%2B%24%23 

console.log("uriDecodeComponent: " + uriDecodeComponent); //,/?:@&=+$#