谁能讲一讲关于jsp的地址栏传中文参数到底是如何编码的?

jesunmy2008 2009-07-14 07:14:11
要详细的
...全文
860 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jesunmy2008 2009-07-15
  • 打赏
  • 举报
回复
好了,经过一天的摸索,终于搞定,问题应该是出在java编码的那个步骤,我采用java.net.URLEncoder.encode(string,"UTF-8"),在传参数前进行解码,接收参数时候不进行任何特殊操作,所有文档的编码格式都采用UTF-8,这样就把问题解决了,汗死了,网上说的好多都比较乱,准备结贴了,用心回答的都有份
fys249931556 2009-07-15
  • 打赏
  • 举报
回复
最好不要直接传递中文,可以搞成类似百度 %BC%D3%C3%DC 这样的形式。

转换也很简单。。
System.out.println(java.net.URLEncoder.encode("楼主"));

看下结果就明白了。
puhongchun 2009-07-15
  • 打赏
  • 举报
回复
LZ
1 地址栏中传递中文并不好 ,你可以看看网站几乎都是字符串,字符 或者数字的

2 ie地址栏传递参数 也就是get方式提交,get方式提交的中文会自动转换汉字的GBK编码对应的转义形式

3 ie地址栏中的字符编码 是GBK
ZhaoHuiZiXin 2009-07-15
  • 打赏
  • 举报
回复
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "UTF-8");
这样可以把任何其他编码格式转换成 UTF-8 编码格式.
jesunmy2008 2009-07-15
  • 打赏
  • 举报
回复
我是用于手机的IE浏览器,如果用opera可以正常显示,编码都采用UTF,但是IE默认是GBK,就是手动修改成UTF之后也不能正常显示,为何?大家积极讨论下啊,基础的问题才是真问题
closewbq 2009-07-14
  • 打赏
  • 举报
回复
1将整个工程的编码格式设置为UTF-8
2tomcat的编码格式设置为UTF-8
3将页面的编码格式设置成为UTF-8
4可以在家一个请求的过滤器,将请求的字符集设置成为UTF-8,肯定没有问题。
new_bird_0001 2009-07-14
  • 打赏
  • 举报
回复
一般的浏览器地址栏和超链接中的中文,浏览器默认都会使用utf-8编码,这种编码方式一般人也不会进行调整
yubangqi 2009-07-14
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_5cf36caf0100b93a.html
阿士匹灵 2009-07-14
  • 打赏
  • 举报
回复
这个问题不是很复杂吧

google里非常多
呵呵

一找一个准

ZhaoHuiZiXin 2009-07-14
  • 打赏
  • 举报
回复
String sContent = "中文 参数";
如果不做任何处理就直接传递,中文也许没有问题(但不保证),但空格肯定会有问题,到接收页面无法识别。
解决办法1:java.net.URLEncoder.encode(sContent,"gb2312"); 然后再传递。比如url是"accept.jsp?content="+sContent;
读取时,使用
String sc = request.getParameter("content");
sc = new String(sc.getBytes("iso-8859-1"),"gb2312");
解决办法2:

传递前,先做以下替换

sContent=sContent.replaceAll(" ","%20");

接收到字符串之后,如果在td中显示,则需要使用

sContent=sContent.replaceAll(" "," ");//注意这里不是替换%20,而是替换空格。如果有中文,要先转码

如果在textarea中显示,则不需要处理。

这样就没问题了。

81,094

社区成员

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

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