http解码-3

http://blog.sina.com.cn/s/blog_6590118a01013a1i.html

如果想准确获取访问一个站点的编码方式,只能从页面meta信息中的charset获取。而这需要解析服务器返回的页面信息,对我们是不可接受的。

侥幸的是,目前国内的大多数站点的编码方式为GB2312GB18030GBK(网易采用GBK编码),新增站点多为UTF-8

 

http://wade6.iteye.com/blog/1744463

下面讨论的编码对象是ASCII码范围以外的字符。ASCII码范围的字符不需要编码。

 

1、地址栏中的Get请求的url

  • 在中文环境中,IE默认对URL的Path部分会采用UTF-8来进行编码,参数部分采用GBK来编码;
  • FireFox对URL的Path和参数都采用GBK进行编码。

2、页面中链接的Get请求url

  • 在中文环境中,IE对URL的Path部分都会采用UTF-8来进行编码,而参数部分会根据当前页面的编码确定;
  • FireFox对URL的Path和参数都会采用当前页面的字符集来进行编码。

3、浏览器做普通Post提交url

  • 采用当前页面的字符集进行编码(浏览器大多数时候会根据Http返回头中的Content-Type来确定当前页面的字符集,如果我们想要设定表单提交时所用的字符集编码方式,可以用设定Http返回头中Content-Type的值来实现)。

4、浏览器做Ajax Get提交url

  • 根据浏览器的不同,编码时采用的字符集也是不同的;
  • FireFox始终采用UTF-8;
  • IE会根据本地浏览器的字符集配置来确定采用的字符集。

5、浏览器做Ajax Post提交url

  • 始终会采用UTF-8进行字符集编码(它决定于XMLHttpRequest的实现)。

6、总结

由于不同浏览器对get请求的编码方式不同,所以web应用的访问路径及get请求的参数(直接在url中输入的情况下)基本都使用数字和字母表示,很少用中文等其他ASCII码范围之外的字符,以免出现乱码问题。

 

如果是返回页面中的get请求,服务端肯定会根据自己的情况进行合适的编码,无需关心中文等问题。

posted @ 2014-07-10 14:25  w_s_xin  阅读(287)  评论(0编辑  收藏  举报