retweet

关于get/post的编码类型讨论

看到阿鬼哥这篇文章,发现我们不谋而合了! 昨天查阅N条资料后明白一个道理: 原来http协议的get/post数据提交时没有编码信息, 虽然http的RFC文档规定了header有请求/回应/正文三部分各自的header.但是请求时的正文header加入charset是没用的. uri在提交时用encodeURI编码的目的只是为了传输,至于客户端提交的数据到底时什么编码类型,服务端不能获知,服务端就得到的编码就是客户端发送的编码,二者是完全相等的. 而用xmlHttp提交数据时,由于js的一切字符都是unicode,所以把数据用encodeURI转换然后提交,服务端得到的就是安全的unicode了. 但是,中文的客户端浏览器form提交时,提交的编码就是本地字符集.无论用js对input value="\uXXXX",提交的依然是本地字符集编码 . 也就是说,浏览器表单提交的总是默认的字符集,下面是个例子,虽然对表单元素的value赋值为unicode编码,但是提交后的数据依然是gbk类型. 这一点,在从传统php项目转换成ajax项目时,值得注意.



 New Document 











--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢

本文地址: http://www.dulao5.com/front-end/2005/10/27/browser-get-post-charset.textile