本地测试没问题,到了服务器就乱码原因:
1.服务器默认编码与本地不同
本地(Windows/Mac)可能是 GBK
或 UTF-8
,而 Linux 服务器可能是 ISO-8859-1
。
2.JSON 数据源的编码不一致
如果 JSON 数据来自文件、HTTP 请求或数据库,服务器和本地的数据源编码可能不同
解决:
第一种情况可以在启动时强制设置 -Dfile.encoding=UTF-8
第二种情况需要手动转UTF-8可参考下图:
但需要注意的是,在使用http请求转换为utf-8后,后续获取里面的数据不能二次转换,如果数据是英文倒没问题,中文就会再次乱码!!!