2008-05-15
扰人的AJAX中文乱码
ajax中文乱码真是个扰人的问题,前几天在自己机器上测试过N次没出问题,今天放到服务器上就出鬼了,试了好多的办法没解决,上网查了资料,也在javaeye里面狂搜一顿,终于还是搞出来了,不知道是否还会出怪,有点担心防不胜防啊,大致解决办法是:
l.javascript
两次 encodeURI()你需要转码的字段,如: urlName = encodeURI(encodeURI(urlName));
2.server
在服务器端用java.net.URLDecoder.decode(urlName,"UTF-8");解析就好了
这个是目前我一次就测试成功的办法,其他的有许多,但基本是都没成功或者说是当前解决了,结果过段时间或放到服务器上就出怪,还有些没用过,就是统一设置UTF-8的编码方式,我觉得这个是最可行的,也是最好的,但目前项目统一使用GBK编码,没办法不好用的。
目前关于乱码解决方式的说法大概有如下的办法:
1.有高人写了Escape类的unescape()方式解码,在js中escape要转码的字符串
这个我没有测试成功,用了escape结果在request.getParameter("string")是取得为空
2.有关于在server端强制转码的方式urlName = new String(urlName.getBytes("ISO-8859-1"),"GBK");
这个可以说是偶尔成功了,不保险,意义不大
其他还有些,慢慢我都要整理比较 哈哈哈
l.javascript
两次 encodeURI()你需要转码的字段,如: urlName = encodeURI(encodeURI(urlName));
2.server
在服务器端用java.net.URLDecoder.decode(urlName,"UTF-8");解析就好了
这个是目前我一次就测试成功的办法,其他的有许多,但基本是都没成功或者说是当前解决了,结果过段时间或放到服务器上就出怪,还有些没用过,就是统一设置UTF-8的编码方式,我觉得这个是最可行的,也是最好的,但目前项目统一使用GBK编码,没办法不好用的。
目前关于乱码解决方式的说法大概有如下的办法:
1.有高人写了Escape类的unescape()方式解码,在js中escape要转码的字符串
这个我没有测试成功,用了escape结果在request.getParameter("string")是取得为空
2.有关于在server端强制转码的方式urlName = new String(urlName.getBytes("ISO-8859-1"),"GBK");
这个可以说是偶尔成功了,不保险,意义不大
其他还有些,慢慢我都要整理比较 哈哈哈
发表评论
- 浏览: 6121 次
- 性别:

- 来自: 长沙

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
我的Ext超级简单教程
先下载,谢谢,现在正需要掌握 EXT.JS
-- by simon1006 -
我的Ext超级简单教程
Thanks a lot
-- by chaoerkaka -
oracle操作基本调优 工作 ...
Libra Man 写道数据库操作主要包含如下操作: 1.insert,2.de ...
-- by Lucas Lee -
oracle操作基本调优 工作 ...
说的非常有价值,谢谢!
-- by Libra Man -
oracle操作基本调优 工作 ...
不用in,用exists代替 取值范围小的字段用bitmap索引 表和索引放在不 ...
-- by taelons






评论排行榜