ITPub博客

首页 > Linux操作系统 > Linux操作系统 > jsp中使用get或url的方式传递中文参数时,出现乱码的解决方案

jsp中使用get或url的方式传递中文参数时,出现乱码的解决方案

原创 Linux操作系统 作者:7854236 时间:2008-08-23 20:03:08 0 删除 编辑
jsp中使用get或url的方式传递中文参数时,出现乱码的解决方案
2008-06-25 19:42
运行环境:Tomcat5.X
a.jsp向b.jsp跳转并传递参数
a.jsp:link
b.jsp:<%out.write(request.getParameter("p"))%>

解决方式1
在conf/server.xml中的Connector节点添加属性
URIEncoding=“UTF-8"
”UTF-8“对应的是a.jsp中指定的编码格式,
指定方式有三种,按照优先级由高到低依次是:response.setCharacterEncoding—contentType—pageEncoding

tomcat将强制使用URIEncoding指定的编码格式对url进行编码,现在就能在b.jsp中正常接收中文参数了,并且b.jsp不用做任何修改。
这种方式的缺点是,URIEncoding属性影响了tomcat下的所有项目。优点是对目标项目的改动少,几乎不用修改任何地方。

解决方式2
同样的地方,但使用这个属性useBodyEncodingForURI="true"
使用接收参数的页面中request.setCharacterEncoding指定的格式编码。
就是要在b.jsp中要指定希望服务器怎样编码:request.setCharacterEncoding("UTF-8");
这里的UTF-8是和a.jsp中指定的编码格式对应的。

这种方式的优缺点和第一种方式刚好相反。

总结:关键点的就是不管用怎样的方式(1或2)指定url的编码,都要注意,格式必须和a.jsp整个页面的格式相同才行,而和b.jsp本身的编码格式无关

如果还是乱码
用你使用的编辑器看看,你的页面保存使用的编码格式是不是和指定的格式相同

为什么不这样就会出现乱码
tomcat5.X默认使用ISO-8859-1对url编码,而我们的页面大部分都不是使用的这个编码格式。那是不是把我们的页面改成这种格式就好了?好奇心下我就把我a.jsp的编码格式改成ISO-8859-1,结果,修改保存时提示错误,文本中有一些字符不能使用ISO-8859-1编码.囧. 原来它是西方字符集。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/95429/viewspace-433133/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: blob_and_tbl_type.
下一篇: jndi
请登录后发表评论 登录
全部评论

注册时间:2008-05-10

  • 博文量
    53
  • 访问量
    60442