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

标签 java file-io character-encoding guava

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

现在我正在自己检测和过滤这些字符,但想知道 Java 标准库或 Guava 是否有办法更干净地执行此操作。

最佳答案

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

当前有关于 Guava website 的错误报告关于在 Guava IO 中处理 BOM。

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

您的 BOM (\ufeff) 似乎是 UTF-16根据同一份 Guava 报告,应该 由 Java 自动处理。 This所以帖子似乎暗示相同。

关于java - 处理文本文件中 Unicode BOM 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15985889/

相关文章:

java - 我的代码在某个时刻失败了。 Java文件IO

php - utf 8 - PHP 和 MySQLi UTF8

java - 那个旧的 AVD 在哪里?我应该选择什么 'Screen'?

java - Lwjgl MouseDwheel 没有得到 0

java - 指定的 JRE 安装不存在

C++ 文件 IO getline 不拉字符串

java - 除以零,同时在 Android 的表格布局中动态添加列

c++ - libcurl 写入数据到数组

html - http header 和 html meta 中的字符集有什么区别?

mysql - 如何在 Windows 上设置 MySQL 以通过 Groovy JDBC 连接接受 UTF-8 数据