tomcat编码问题

request.setCharacterEncoding("utf-8");      //设置在读取客户端发来的请求时,以utf-8的形式读取,如果客户端发来的是get请求,信息存在url中(url是采用“iso-8859-1”的编码方式),则采用

username = new String(username.getBytes("utf-8"),"iso-8859-1"); 的方式转换编码格式

response.setContentType("text/html;charset=utf-8");

response.setCharacterEncoding("utf-8");


还有一种方式,直接改变tomcat对url的编码解码方式,修改services.xml,添加 URIEncoding="utf-8"

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"  URIEncoding="utf-8"  />

那么get方式提交的(或者通过ur传递的参数l)都可以直接获取,而不用使用上面的方法把iso-8859-1转成utf-8

tomcat8里则把默认的URIEncoding设成utf-8

在使用response.sendRedirect(XX)时,如果有中文,则可以把中文先转成iso-8859-1或者使用

response.sendRedirect("success.jsp?username="+java.net.URLEncoder.encode(username, "utf-8"));对中文进行编码

你可能感兴趣的:(tomcat编码问题)