【发布时间】:2015-01-15 02:23:21
【问题描述】:
在 Java 中有没有办法检测文件是 ANSI 还是 UTF-8?我遇到的问题是,如果有人在 Excel 中创建 CSV 文件,它是 UTF-8。如果他们使用记事本创建它,那就是 ANSI。
我想知道我是否可以检测文件类型然后相应地处理它。
谢谢。
【问题讨论】:
-
你能提供一些代码而不仅仅是链接吗?
-
如果 excel 包含 UTF-8 BOM,您也许可以检查它(我这里没有要检查的副本)。您可以以二进制形式打开,读取前三个字节并检查
0xEF,0xBB,0xBF,或者乐观地以“Cp1252”(“ANSI”)打开,如果您在开始时看到,则以 UTF-8 形式重新打开它。跨度> -
@user1158745 这些链接似乎非常有用并提供了代码示例。如果你愿意,你可以发布一个答案来写你自己问题的答案。