【发布时间】:2012-11-03 22:29:19
【问题描述】:
我正在尝试使用 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)?
谢谢
卡雷尔
【问题讨论】:
-
Charset.forName("windows-1250")??? -
“纯文本”文件通常不包含有关其字符编码的元数据。检测类使用启发式和统计,本质上是不可靠的。切换到具有严格定义的编码方案的文件格式。
-
这个文件的内容是什么,因为一个工具几乎不可能区分 windows-1250 和 windows-1252,因为在字节级别上它看起来是相同的,除了基于启发式关于某些字符的出现频率。
标签: java file character-encoding cp1252 cp1250