开发环境:
macOS Mojave 10.14.4;
java 1.8;
IDEA 2019.1;
tomcat 8.5;
mysql 5.7.
复制代码
开发框架
spring boot2
mybatis
复制代码
统一编码
UTF-8
复制代码
场景描述
开发一个接收数据的接口,用于接收数据并插入到数据库。
请求方式POST请求,Content-Type:application/json
复制代码
接口示例
@PostMapping(value = "/**/**")
public Result saveData(@RequestBody String body){
return null;
}
复制代码
问题描述
在开发环境(macOS)下,使用postman调试接口,一切正常;
发布到测试环境(Windows)下到tomcat,使用postman发送数据,发现接收到的数据(body)中文乱码,中文字符有些正常有些乱码变为问号“?”。
复制代码
无效解决方案
1、修改tomcat server.xml,在<connector>标签中添加```URIEncoding="UTF-8"```,无效;
2、在postman请求头参数中添加Accept-Charset:UTF-8,无效;
复制代码
解决方案:
在tomcat的catalina.bat文件中set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的后面加上 -Dfile.encoding="UTF-8"
复制代码
[www.seaxiang.com/blog/java_p…](参考连接设置-Dfile.encoding 解决 java项目乱码问题)