一个运行于tomcat下的war包,忽然服务出现了乱码,问题排查如下:
- 检查点一:
- 1. 检查tomcat 的config目录下server.xml 文件:
<Connector ……
redirectPort=”443″ URIEncoding=”UTF-8″ />, 发现问题不在这里
- 检查点二:
- 2.1. 命令行下执行: ps -ef | grep java 获取java运行所在的pid为6724
[[email protected]]# ps -ef | grep java
root 6724 1 3 14:30 pts/0 00:01:04 /usr/local/jdk/bin/java –
- 2.2. 查看问题机器的jvm的编码格式
[[email protected]]# jinfo 6724 |grep enc
sun.jnu.encoding = ANSI_X3.4-1968
file.encoding.pkg = sun.io
sun.io.unicode.encoding = UnicodeLittle
file.encoding = ANSI_X3.4-1968
果然问题出在这里。 可以在tomcat的bin目录下的catalina.sh,添加给 JAVA_OPTS 的多添加两个参数
-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8
重启tomcat,DONE!