1

我正在尝试使用Cp1250字符集创建文件:

out = new BufferedWriter(
        new OutputStreamWriter(
        new FileOutputStream("/path/filename"), Charset.forName("Cp1250")));

但是,当我使用juniversalchardet检测到实际字符集时,它显示WINDOWS-1252Cp1252(根据javadoc)。

Enca( enca -L czech -g filename) 检测ISO-8859-2

我怎样才能准确设置Cp1250(或者,使用 java.nio API 名称windows-1250)?

谢谢

卡雷尔

4

1 回答 1

3

任何编码检测程序只能是启发式的,当涉及到对所有文件基本上都有效的编码时(例如,每个字符总是一个字节并且每个字节都有一个字符映射的那些)。

您应该编码一些您知道会在Windows-1250Windows-1252之间导致不同结果的文本,并查看您的代码实际执行的操作。我怀疑你会发现它实际上在做正确的事情。

于 2012-11-15T10:37:57.850 回答