在开发中碰到使用ajax时,在action中获取中文的会乱码。有人就会在jsp中设置字符集为GBK,然后写过过滤器 告诉JVM以GBK字符集读数据。然后还不能解决问题,就在代码中转换字符集,怎么转码都没用,搞清楚了乱码原理,其实解决问题很简单的。
大家知道javascript中是以UTF-8编码的,虽然你页面设置了字符集是GBK,这个作用是让浏览器以GBK字符集读取数据。使用ajax时只要对你要发送的数据encodeURI 2次,然后再在action用调用java.net.URLDecoder.decode(str,"UTF-8");把他转成UTF-8,这样就OK了。
本文介绍了一种解决使用AJAX发送中文数据时出现乱码的方法。通过两次encodeURI编码并在服务器端进行UTF-8解码,可以有效避免乱码问题。
251

被折叠的 条评论
为什么被折叠?



