日期:2014-05-17  浏览次数:20685 次

急 action接收乱码问题
之前看过跟我的需求类似的帖子,但是没得到解决
先解释下我的需求
业务中 有一个短信搜索 用户发送中文 然后得到一个链接 例如 http://xxx/search.action?content=中文
用户会点击这个链接 也就是这个链接会输入在浏览器中 会经过gbk,iso-8859-1,utf-8的编码过程
在action接受的时候就是乱码 
试过很多方法,都没成功
tomcat server,xml设置了URIEncoding=utf-8 这个不能变,因为其他地方需要用到它,而且测试部也是这个

求高手解决

------解决方案--------------------
可以直接对URL进行编码,编码之后,到Action再解码
如下:
1.http://xxx/search.action?content=encodeURIComponent("中文");
2.到Action进行解码
String keyword="URL传过来的已经编码的值";
String temp = new String(keyword.getBytes("ISO-8859-1"),"utf-8");
keyword = URLDecoder.decode(temp, "utf-8");
思路大概是这样的,我刚改了一个bug,跟你类似。
是在JS里边location新的URL传中文参数,也会乱码,试试吧