问题背景:
(window环境)
1、测试环境部署drools规则引擎应用(drools-Tomcat);
2、本地应用(wharf-Tomcat)调用drools规则引擎应用,返回的结果数据正常,无乱码
3、测试环境(wharf-Tomcat)调用drools规则引擎应用,返回结果数据乱码
问题原因:
1、drools规则引擎应用部署时的服务(Tomcat)编码是UFT-8
2、本地应用的部署环境(Tomcat)编码也是UTF-8,所以,本地应用调用时,不会出现乱码
3、测试环境应用部署的服务(Tomcat)编码是GBK,与部署的drools应用的编码格式不一致,所以返回的数据出现乱码情况
解决方案:
1、修改测试环境应用(wharf-Tomcat)tomcat的启动参数,使其编码格式变为UTF-8:
找到{tomcat_dir}/bin/catalina.bat文件,在set JAVA_OPTS= 后添加:-Dfile.encoding=UTF-8,如下图:
然后,重启tomcat问题解决;
但是,在catalina.bat中指定编码之后,会发现,tomcat控制台日志却出现了乱码:
这是因为:Tomcat命令窗口字符编码(GBK)与显示的字符编码(UTF-8)不匹配
解决方法:通过注册表修改Tomcat命令窗口的默认字符编码为UTF-8即可解决
第一步:Windows+R打开运行,输入regedit进入注册表编辑器
第二步:在HKEY_CURRENT_USER→Console→Tomcat中修改CodePage为十进制的65001
注意:如果没有Tomcat或者CodePage,直接新建一个,如下图所示
修改成功后,如下图所示
或者使用下面方法尝试:
打开tomcat/conf/logging.properties
找到java.util.logging.ConsoleHandler.encoding = UTF-8
修改为java.util.logging.ConsoleHandler.encoding = GBK
如果没找到就在下图位置添加
至此,问题解决