我正在尝试使用 Cp1250 字符集创建文件:
out = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("/path/filename"), Charset.forName("Cp1250")));
然而,当我用juniversalchardet检测到实际的字符集时, 它说 WINDOWS-1252 , Cp1252 (根据javadoc)。
Enca(enca -L czech -g filename
)检测到 ISO-8859-2 。
如何准确设置 Cp1250 (或使用java.nio API名称, windows-1250 )?
谢谢
卡雷尔
答案 0 :(得分:3)
对于所有文件基本上有效的编码,任何编码检测程序都只能是启发式的(例如,每个字符总是一个字节,并且字符映射到每个字节的编码)。
您应该编码一些您知道会在Windows-1250和Windows-1252之间产生不同结果的文字,并查看您的代码实际执行的操作。我怀疑你会发现它确实在做正确的事情。