tomcat设置defaultCharset

  • Post author:
  • Post category:其他


最近项目中java需要和C++端交互,底层都是socket,调用接口的时候,单元测试没问题,但是放到tomcat运行发现响应的数据乱码,不是页面展示乱码,是使用C++接口库响应的就是乱码,于是一步步跟踪下去,发现在解析字节数据到字符串的时候使用的就是new String(byte[] data),

这里有个问题就是该构造函数的编码问题!

可以使用Charset.defaultCharset().name()打印出来看看,结果一看,junit中打印出来是UTF-8,tomcat中运行的时候是GBK!

这里需要设置下tomcat的编码,在tomcat8的catalina.bat中找到set “JAVA_OPTS=%JAVA_OPTS%,两处后面都加上 -Dfile.encoding=UTF-8;这里改完后单独启动tomcat没问题了,如果是在eclipse中启动tomcat默认编码还是GBK,这里需要如下修改eclipse里面tomcat启动参数

Run-RunConfiguration-ApacheTomcat-tomcat8-Arguments,在VM atguments最后加上Dfile.encoding=UTF-8,启动OK!



版权声明:本文为yaohua920205原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。