ajax异步传输中文乱码问题的根本原因是其内部编码不支持中文兼容编码引起的,对于Jquey同样如此,在请求端(js->服务器)可以通过URIencode()进行编码,在服务器端通过URLdecode()进行解码,比较麻烦的是服务器端返回数据给前台,如果在后台使用URLencode()编码再在前台使用URIdecode()解码,只能解出英文和符号,中文还是乱码。
解决办法是使用escape()方法,在前台使用JS自带的unescape()解码,zend framework 自带有escape()方法,不过不知什么原因总是调用失败,所以只能退而求其次,找到一个手动实现escape()的方法,其思路是将字符串中的字符转换成ASCII码的形式,JS中的unescape()函数会将传送过来的十六进制码转换成相应字符,以此实现中文数据的传输。
ps:还需要了解的内容:zend framework escape()的调用。