奇怪奇怪奇怪简单的字符编码问题

binghaizjw 2009-01-19 10:42:41
1.页面一中两个连接:

<a href="test.do?name=徐静&age=百度">测试1</a>
<a href="test.do?name=徐静蕾&age=百度">测试2</a>


提交到比如 test.do
Action中
System.out.println( request.getParameter("name"));
System.out.println( request.getParameter("age"));

获取参数的时候
如果是徐静蕾(测试1)参数获取不正常。
徐静??age=百度 (name中的好像不解析&)
null
如果是(测试2)参数获取正常
徐静
百度
'徐静??
百度
'徐静??
百度
在tomat中设置了字符集为utf-8,页面也是utf-8
sturts中设置了统一一的字符集utf-8

高手给提点意见。
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenl1984 2009-01-19
  • 打赏
  • 举报
回复
原因不太了解,可是用url传汉字有的会出现乱码,有的不会。不如全部<a href="test.do?name=<%URLEncoder.encode("徐静蕾")%>&age==<%URLEncoder.encode("百度")%>">测试2 </a>

接受到参数后URLDecoder解码就可以了
Jacky_Zhu_1983 2009-01-19
  • 打赏
  • 举报
回复
new String(content.getBytes("ISO-8859-1"), "GBK");
landiao00o 2009-01-19
  • 打赏
  • 举报
回复
语无伦次!
baidu里面找找“url编码”
binghaizjw 2009-01-19
  • 打赏
  • 举报
回复
不好意思发错了,更正如下:
测试1能正常获取参数,但是测试2就不能正常获取参数了
sebatinsky 2009-01-19
  • 打赏
  • 举报
回复
说实话,不管是什么,对中文的支持也许,只能说也许不会出现问题,因为乱码由来已久,这个无论如何都不能够解决的很好,我想那些高级的程序员,也许很容易就解决了吧,可是对于普遍的来说,就是会有问题的,就像楼主说的,所有的都是UTF-8,但是还是会出现乱码,也许你在前台用编码转换,也就是最常用的.


getBytes



或者是前后台都编码解码,或者是你用转义字符的时候,
<a href="test.do?name=徐静&age=百度">测试1 </a>
<a href="test.do?name=徐静蕾&age=百度">测试2 </a>
不管怎么样,防不胜防.很多时候,也许你今天运行程序不会出现乱码,但是你第二天就会有,上午有,下午不一定会,当然,是程序或者是服务器发生不知道的变化的时候.

所以慢慢解决吧,一般很容易,或者是通过其他的方式来传递参数也行.

81,092

社区成员

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

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