jsp中使用get或url的方式传递中文参数时,出现乱码的解决方案
2008-06-25 19:42
运行环境:Tomcat5.X
a.jsp向b.jsp跳转并传递参数 a.jsp: link b.jsp: 解决方式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博客 ” ,链接:http://blog.itpub.net/95429/viewspace-433133/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/95429/viewspace-433133/