在web开发下一直使用的filter进行转码的。
request.setCharacterEncoding("utf-8");
不过今天我想在传递url?role=角色将中文作为附带信息进行下一页面的显示。
发现传递之后一直是乱码。
必须用new String(request.getParameter("role").getBytes("iso-8859-1"),"utf-8")
进行转换。
原来tomcat在处理get和post请求的时候处理方式不同。
POST请求是将参数存放在请求数据包的消息体中
所以使用request.setCharacterEncoding("utf-8");可以处理
但是GET请求是将参数存放在url中,此时setCharacterEncoding就不起作用了,此时我们需要采用手写代码进行转码。
当然我们也可以修改tomcat配置文件来处理get请求的转码
conf\server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
/>
转载请注明:学时网 » tomcat下被忽略的中文乱码问题GET请求