解决Tomcat9乱码终极方法(Eclipse正常, live部署乱码)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rocklee/article/details/89212252

手多将tomcat8换成tomcat9, 用eclipse调试时一切正常, 但发布出去发现乱码了,  经过远程调试发现正常的request.getParameter取回的内容不乱,但是用request.getReader()取回的就变怪码. 需要作如下修改:

1/修改tomcat9\conf\server.xml, 定位到Connector  这个session, 加上URIEncoding为"utf-8"

<Connector port="80"     
               protocol="org.apache.coyote.http11.Http11NioProtocol"               
               URIEncoding="UTF-8"
               compression="on"                             
                maxThreads="200"               
                minSpareThreads="10"  
               compressionMinSize="1024"
               connectionTimeout="20000"               
               compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript "
               redirectPort="8443" />

2/修改catalina.bat , 在开始指定file.encoding: 

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8 -server  -Xms512m -Xmx2048m -XX:MetaspaceSize=512M  -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss2m"

3/所有servlet/controller用到request/response时先调用 :

protected void setEncodingUtf8(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		response.setCharacterEncoding("UTF-8");
	}

猜你喜欢

转载自blog.csdn.net/rocklee/article/details/89212252