最高半折刷qq各种业务和钻(家里人自己开的,尽管放心,大家多捧捧场)

sking7

导航

js中关于escape,encodeURI,encodeURIComponent三个函数


var var_1="% $ &";
var var_2='中';
var var_esc=escape(var_1);//%25%20%24%20%26
var var_esc2=escape(var_2);//%u4E2D
var var_unesc=unescape(var_esc);//
var encode_val1=encodeURI(var_1)
var encode_val2=encodeURI(var_2)//
alert("变量'"+var_1+"'escape编码后:"+var_esc);//%25%20$%20& 可以发现 一些符号没有被转换下面有原因
alert("变量'"+var_2+"'escape编码后:"+var_esc2);//%u4E2D
alert("变量'"+var_1+"'encodeURI编码后:"+encode_val1);//
alert("变量'"+var_2+"'encodeURI编码后:"+encode_val2);//%E4%B8%AD(UTF-8的编码,具体转换方式见下面表格。。)

alert("encodeURIComponent编码后:"+encodeURIComponent(encode_val1));

alert("encodeURIComponent编码后:"+encodeURIComponent(encode_val2));%E4%B8%AD

unicode转utf-8

UCS-4编码 UTF-8字节流
U+00000000 – U+0000007F 0xxxxxxx
U+00000080 – U+000007FF 110xxxxx 10xxxxxx
U+00000800 – U+0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
U+00010000 – U+001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U+00200000 – U+03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U+04000000 – U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx


2.


escape:
  
    该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )
    其他所有的字符都会被转义序列替换(替换为相应的unicode值)。

    可以使用 unescape() 对 escape() 编码的字符串进行解码。
    注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
    另外: escape对0-255以外的unicode值进行编码时输出%u****格式


encodeURI(URIstring):

     该方法不会对 ASCII 字母和数字进行编码(默认为UTF-8编码),也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

     该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

     decodeURI()方法来解码。。

encodeURIComponent(URIstring)

    
     该方法不会对 ASCII 字母和数字进行编码(默认为UTF-8),也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

     其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

     decodeURIComponent()解码

     例如参数中有#?这样的数值怎么办呢?用encodeURIComponent方法。。





posted on 2011-12-23 00:00  G.N&K  阅读(310)  评论(0编辑  收藏  举报