最近的项目中,遇到了这个问题,我们的容灾环境要进行演练,但是进行切换到容灾环境的时候,发现返回的中文都是?问号
解决思路:
1.先看下接口的请求头和响应头是不是指定了这个编码格式。排查出来发现都是有的
2.看下解密和加密是否有指定编码格式设置字符 byte[] bytes = srcData.getBytes(StandardCharsets.UTF_8);
发现没有,但是这个也不影响(其实最好是指定一下啦,不然就会发生我们项目出现的问题)。
没有显式指定字符集,它会根据系统的默认设置来进行转换。
于是乎叫运维去查询了部署项目的机器的字符集,使用命令locale charmap 查看
如果是正常的那么一般都是UTF-8 不正常的就会显示下面的情况
正常的是这种的:
最后总结下:安装下语言字符集文件即可解决!