为了与as400通信,我将Java Web服务与jt400库一起使用,该Web服务在Linux下运行。
调用as400程序后的文本结果包含带重音符的字符,例如é à è…,但是在我的xhtml页面中,文本无法正确显示,例如,é被替换为{

as400的配置如下:ccsid : 65535encoding : 297
在Windows下运行相同的Web服务时,我可以正确显示带重音符号的字符
感谢您的帮助。

最佳答案

您似乎遇到了Mojibake的问题,这是由于以不正确的编码方式解释了文本字节而引起的。您提到é{取代; CCSID 297é的代码点是0xC0,而CCSID 37中的{则是,因此这很有意义。

我不确定数据来自何处,但是如果您使用AS400Text将数据转换为Java String对象,则需要指定正确的CCSID,否则它将根据当前语言环境。您可以从AS400.getCcsid指定CCSID,也可以从AS400.getJobCCSIDEncoding指定关联的编码字符串值。

09-11 17:59