【发布时间】:2014-05-06 11:38:13
【问题描述】:
我有一个 Excel 中的 Drools 决策表(97/2000 格式),规则中使用的一些字符串具有非 ascii 字符,例如变音符号 (Ä)。当我从这个决策表中使用 Ubuntu 12.04LTS 中的 Camel-Drools 集成模块构建规则包时,我在规则源中得到错误的字符。
例如,
在电子表格中 -> Ääripää tässä tapauksessa,
在内置的 drl 文件中 -> ��rip��t�ss�tapauksessa
如果我在 Windows/Ubuntu/Mac(Eclipse 或 IDEA 没有区别)开发机器甚至 Vagrant/VirtualBox/Ubuntu 环境中使用完全相同的 excel 文件,则 drools 规则不存在字符编码问题。
代码被打包成 Spring-boot Jar-file,其中包含部署应用程序的 Jetty 服务器。这个相同的 JAr 文件已用于在每个不同的环境中进行测试,但只有一个失败是基于云的测试环境。
测试环境是用 Kitchen & Chef 食谱建立的,它是一个云环境,没有最模糊的云环境和开发环境之间的区别。
已尝试将 excel 文件格式化为 UTF-8 编码,但似乎不可能。 Camel-Drools 集成模块应该在他们的下一个版本(6.0.0 https://issues.jboss.org/browse/JBRULES-2936)中修复这个问题,但它仍处于测试阶段,还不能使用。我也没有得到他们稳定发布的时间表。
有人知道如何解决这个问题吗?
【问题讨论】:
-
您能否提供来自 .drl 文件的 Ääripää tässä tapauksessa 的
od -tx1输出? -
我没有DRL文件,系统在运行时生成DRL是Excel文件
-
那你是如何获得‘rip�� t�ss’ tapauksessa 的?
-
我使用骆驼集成到drools 功能(camel-drools 模块为我做的),然后我通过骆驼将输入发送到drools 的运行时生成的代码,在触发规则后给我一个输出。然后通过 REST API 将此结果提供给用户/前端。而在 Ubuntu 云环境中,由于某种原因编码无法正常工作。
-
像这样:camelContext.createProducerTemplate().sendBody("direct:accounting1RulesRoute", ImmutableList.of(accountingDto));
标签: excel ubuntu character-encoding apache-camel drools