新项目中用到了drools规则引擎,后来部署的linux环境后drl文件的中文显示和读取都是乱码,在本地运行不乱码,所以第一时间就想到了应该是drools内部取了操作系统默认的编码了,一查发现果然线上环境是gbk编码,而项目都用的是utf-8编码。
在启动脚本start.sh参数里面加上-Dfile.encoding=UTF8(注意不是UTF-8,具体解释见官方文档https://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html),启动后显示中文正常,此参数作用是强行设置系统文件编码格式为utf-8