Lotus Domino Server的Charset

时间:2014-06-05 13:14:48

标签: linux utf-8 character-encoding lotus-domino

我有一个管理文档附件的Java代理(在Linux服务器上运行),但是名字中的重音字符有错误(ò,è,ùecc..)。

我写了这段代码来显示使用的字符集:

OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());
String enc = writer.getEncoding();
System.out.println("CHARSET: " + enc);

此显示

CHARSET: ASCII

在一切工作正常的服务器中,同一行打印:

CHARSET: UTF8

服务器具有相同的配置(与“Internet站点”一起使用,其中“将UTF-8用于输出”设置为“是”)。

有关要设置的参数(Domino / Linux)的想法吗?

更新

我会尝试更好地解释......

我通过Ajax调用调用代理。 在参数中,我传递“ààà”字符串。当我尝试在UTF-8内部代理中解码时,字符串用

解析
"???" 

而不是

"ààà"

这是System.out.println()在控制台中显示的内容。

在另一台Domino服务器上,一切正常。我不明白这是服务器设置还是OS设置问题。

2 个答案:

答案 0 :(得分:2)

只是一个建议,但您可以将示例中的第一行更改为:

OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream(), 
                                    Charset.forName("UTF-8"));

这将强制OutputStreamWriter为UTF8,您的示例代码将在两台服务器上显示一致的输出。在不知道更多细节的情况下,我无法确定这是否与真实问题相关。

答案 1 :(得分:-1)

虽然这可能无法直接回答您的问题,但您可能对this有关编码的文章感兴趣。