@下面是asp.net中的编码转换方法:

中文转UnicodeHttpUtility.UrlEncodeUnicode(string str);
转换后中文格式:"%uxxxx" 举例:"_abc123" 转换结果是:"%u67f3_abc123"

Unicode转中文1HttpUtility.UrlDecode(string str);
str格式:"%uxxxx" ,举例:"%u67f3_abc123"

Unicode转中文2Regex.Unescape(string str);
str格式:"\uxxxx" ,举例:"\u67f3_abc123"

 

@下面是Javascript中的编码转换方法:

 

1.window.escape()HttpUtility.UrlEncodeUnicode()编码格式一样:将一个汉字编码为%uxxxx格式(unicode编码)
不会被window.escape编码的字符有:@ _ - . * / + 这与http://www.w3school.com.cn/js/jsref_escape.asp上的解释不符合

 

2.window.encodeURIComponent()HttpUtility.UrlEncode()编码格式一样:将一个汉字编码为%xx%xx%xx的格式(gbk编码或者utf8编码)

 

不会被window.encodeURIComponent编码的字符有:'()*-._!~ 这与http://www.w3school.com.cn/js/jsref_encodeURIComponent.asp解释相符合

 

不会被HttpUtility.UrlEncode编码的字符有:'()*-._!相比较而言,HttpUtility.UrlEncodewindow.encodeURIComponent多一个 ~ 编码

 

3.不会被window.encodeURI编码的字符有-_.!*();/?:@&=$,# encodeURIComponent对比,发现encodeURI不对:;/?:@&=+$,#这些用于分隔 URI 组件的标点符号进行编码

 

@Asp.Net编码与JS编码的区别:

 

1. 不会被HttpUtility.UrlEncodeUnicode编码的字符与不会被HttpUtility.UrlEncode编码的字符一样,而escapeencodeURIComponent不编码的字符不一样

 

2.  HttpUtility.UrlEncodeHttpUtility.UrlEncodeUnicode会对/编码,而escapeencodeURIComponent会对/编码,encodeURI不会对/编码

 

3.  HttpUtility.UrlEncode()HttpUtility.UrlEncodeUnicode()会把空格编码为 +,而escapeencodeURIComponentencodeURI都会将空格编码为%20

 

@为什么优先使用encodeURIComponent而不是escape?
  escape
法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,取而代之,你最好选择 encodeURIComponent()方法。

 

 

 

posted on 2014-04-10 16:51  学到老死  阅读(3176)  评论(0编辑  收藏  举报