概述:
把一个简单的web项目部署到机器上后 在浏览器中访问显示中文乱码,一开始以为是浏览器编码问题,调试后发现跟前端没有关系。
解决办法:
网上找了一些方法,大概有以下几种办法:
1、修改tomcat中的conf/server.xml,在<Connector中加入URIEncoding="utf-8",举例如下:
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
maxPostSize="0"
URIEncoding="UTF-8"/>
2、修改tomcat中的bin/catalina.bat,增加一行:
set “JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8”
3、修改conf/web.xml,在<server>标签中 增加fileEncoding,我的web.xml中位置大概在103行,具体如下:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
解决情况:
当时试了1、2,都是失败,最后试了第3种方法 结果是成功的。
第三种情况中的fileEncoding大概是,如果不写 默认用系统的字符编码方式去解析,可能那台机器刚好没有相应的字符编码,所以出现中文乱码。在tomcat中指定fileEncoding为utf-8这个问题就解决了