【问题标题】:Right way to deal with Unicode BOM in a text file在文本文件中处理 Unicode BOM 的正确方法
【发布时间】:2013-04-13 08:37:18
【问题描述】:

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

现在我自己检测和过滤这些字符,但想知道 Java 标准库或 Guava 是否有办法更干净地做到这一点。

【问题讨论】:

  • 地方? BOM 应该是文件的第一个字节;否则它不是 BOM。
  • 假设 BOM 位于文件的开头,那么 Guava 网站的 this 错误报告解释说 Guava 不处理 BOM,this 帖子给出了如何跳过它的想法在纯 Java 中。
  • @bmorris591,是的,一开始。谢谢。如果您将第二条评论作为答案发布,我会将其标记为已接受。

标签: java file-io character-encoding guava


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多