在文本文件中处理Unicode BOM的正确方法

时间:2013-04-13 08:37:19

标签: java file-io character-encoding guava

我正在我的程序中读取一个文本文件,其中包含一些Unicode BOM字符\ufeff / 65279。这在进一步解析中提出了几个问题。

现在我自己检测并过滤这些字符,但想知道Java标准库或Guava是否有办法更干净地完成这些工作。

1 个答案:

答案 0 :(得分:10)

在Java中,或者实际上,在Guava中没有内置的处理(UTF-8)BOM的方法。

关于处理Guava IO中的BOM,Guava website目前有一个错误报告。

有几篇SO帖子(herehere)介绍如何在用普通Java读取文件时检测/跳过BOM。

您的BOM(\ufeff)似乎是UTF-16,根据相同的Guava报告应该由Java自动处理。 This SO帖似乎也有同样的建议。