记一次处理http请求返回json数据中文乱码问题
背景
项目中rest接口返回中文错误提示信息显示乱码。
环境
apache httpClient
spring mvc
tomcat
处理过程
分析理清问题
接口部署在本地tomcat上时,使用Apache httpClient客户端访问无乱码。
接口部署到服务器上的tomcat时,使用Apache httpClient客户端访问返回结果中文乱码。
初次排查
检查HttpClient请求Content-type为UTF-8,排除客户端编码问题。
再次排查
查看本地tomcat编码为默认编码,服务器tomcat编码为UTF-8编码。怀疑是tomcat编码问题导致的,
修改本地tomcat编码为UTF-8,测试无乱码,排除tomcat编码问题。
第三次排查
因为客户端和服务器编码都没有问题,怀疑是接口输出数据有问题。添加日志记录输出结果,发现数据无乱码。
怀疑是spring mvc 视图返回json字符串时编码有问题。百度一下发现spring mvc确实存在视图返回json字符串时使用的是iso-8859-1编码。
测试之,使用response out流输出json字符串,结果无乱码。
确定问题和spring mvc返回json数据编码导致。
暂时使用输出流直接输出json字符串。
后续再测试网上提供的其他解决方案。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程私厨!