我真的很想知道该文件是否为 Windows-1256。有没有办法识别文本文件是否是 Java 中的 Windows-1256?
问问题
877 次
3 回答
0
于 2012-04-16T07:20:14.010 回答
0
将编码头添加到文件中。许多文本编辑器这样做:
# -*- coding: cp1256 -*-
除此之外,没有可靠的方法可以做到这一点。
问题是 cp12xx 编码彼此之间并没有太大的不同。它们在屏幕上看起来不同,但在文件数据中,没有任何内容表示0x8a
阿拉伯语ٹ
(1256)或Š(1250 和 1252)或什么都没有(1255)。
PS:由于从右到左的问题,最后一句话看起来不对。代码“(1256)”实际上是在阿拉伯字符之后。
于 2012-04-16T09:09:05.607 回答
0
假设您可以选择 Windows-1256(阿拉伯语)、UTF-8 和 Windows-1252(西欧的一部分)。然后,您可以为 UTF-8(不合理序列)和 Windows-1252 注册错误编码的证明。无论如何,某些 Windows-1252 序列会为 UTF-8 抛出无法解析的异常——
try {
readInUTF8(file);
} catch (IsWindows1256Exception e {
readInWindow1256(file);
}
(伪代码)
于 2012-04-16T09:30:09.947 回答