ajax编码问题

站长 2个月前 访问:56 评论:0 关注:0

1.页面提交时候ajax post方式

浏览器正常POST或GET数据时,会对数据进行URL编码,但字母、数字、星号、下划线、短横线、AT符号这个集合不在此列。用AJAX来POST数据时,需要手动构造POST字符串,比如a=123&b=456,这些字符如查不处理直接提 交,XMLHTTP会直接发送。如果其中包含非ASCII字符,就发送未经URLCODING的UTF-8码,服务器一般也能正常接收,或 需人工进行简单处理。不经过URL编码直接发送的坏处是,特别是字符串由脚本程序根据表单内容自动构造时,如果表单值中含有“&”与“=”以及回车符,就会 破坏字符串的结构,服务器不能正常接收,如果页面是GBK编码,汉字却会以UTF-8方式POST出去,服务器端收到的与正常提交的就不一 样。用AJAX来发送GET请求时,其中的汉 字会以页面编码方式发送,而不是UTF-8编码。所以用AJAX来POST数据,为了安全起见,最好是进行人工的URL编码。AJAX来POST数据时,最麻烦的就是遇到页面编码是GB2312,而且浏览器不是IE,这样就需要用查找表法找到汉字的GBK内码。

2.setcookie编码

在发送 cookie 时,cookie 的值会自动进行 URL 编码。接收时会进行 URL 解码。如果你不需要这样,可以使用 setrawcookie() 代替。


评论

还没有人评论 ~

公告