tomcat设置defaultCharset

最近项目中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!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值