本地环境是jdk8 + ubuntu, 生产环境是openjdk8 + centos;
本地能正常显示中文,正式环境中文变成????。
分析原因:
1.终端输入locale查看,发现均为LANG=en_US.UTF-8,因此根操作系统编码无关
2.查看jvm的编码,通过logger.error(System.getProperty("file.encoding"));
发现正式环境输出ANSI_X3.4-1968, 而本地环境输出为UTF-8
问题就是这个。
解决方案:
加入java启动参数,-Dfile.encoding=UTF-8, 搞定!!
网友评论