急 action接收乱码问题

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

求高手解决
...全文
200 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
muler1988 2012-01-30
  • 打赏
  • 举报
回复
可以直接对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传中文参数,也会乱码,试试吧
泽风 2012-01-30
  • 打赏
  • 举报
回复
可以先编码,接收的时候再转码
shengr617 2012-01-30
  • 打赏
  • 举报
回复
弄个过滤器,或者jsp,servelt里面设置编码统一
xyz_obj 2012-01-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fei1502816 的回复:]
可以直接对URL进行编码,编码之后,到Action再解码
如下:
1.http://xxx/search.action?content=encodeURIComponent("中文");
2.到Action进行解码
String keyword="URL传过来的已经编码的值";
String temp = new String(keyword.getBytes("ISO-……
[/Quote]
get 方式转码就OK
吸尘器 2012-01-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fei1502816 的回复:]
可以直接对URL进行编码,编码之后,到Action再解码
如下:
1.http://xxx/search.action?content=encodeURIComponent("中文");
2.到Action进行解码
String keyword="URL传过来的已经编码的值";
String temp = new String(keyword.getBytes("ISO-……
[/Quote]
海逸_2018 2012-01-30
  • 打赏
  • 举报
回复
1 中文值与变量分开,先对中文编码,然后赋值给变量;如 name=中文;
String name1= new String(name.getBytes("ISO-8859-1"),"utf-8");

http://xxx/search.action?content=name1
2 URL进行编码,编码之后,到Action再解码
linli_yatb 2012-01-30
  • 打赏
  • 举报
回复
同意9楼的
fanyuna 2012-01-30
  • 打赏
  • 举报
回复
看看http://blog.csdn.net/qjyong/article/details/2503561这个
tanwan 2012-01-30
  • 打赏
  • 举报
回复
可以在JS的时候就对URL进行一次encode吧
sxh_1987923 2012-01-29
  • 打赏
  • 举报
回复
在解释下

这个链接http://xxx/search.action?content=中文
是发送到手机上的 然后用户点击
类似于在浏览器 直接输入这个链接 然后到我的action
MiceRice 2012-01-29
  • 打赏
  • 举报
回复
哦,那就在servlet最开始,设置request.setCharacterEncoding("UTF-8");
顺手也设置 response.setCharaterEncoding("UTF-8");
sxh_1987923 2012-01-29
  • 打赏
  • 举报
回复
我这里不需要用到JSP啊
MiceRice 2012-01-29
  • 打赏
  • 举报
回复
把你的JSP编码设置为UTF-8就好了,另外也注意在Eclipse中设置JSP文件保存的字符集也是UTF-8,然后就没有那么多麻烦事了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧