1

我想将多个 UTF-8 文本文件放在一起,而文件中间没有多个 BOM。除了从每个文件中剥离 BOM 之外,还有其他合适的方法吗?

我的问题是,在剥离 BOM 并将文件组合在一起之后,我无法将数据复制到 Postgres 表中。Postgres 抱怨数据不是 UTF-8。我可以很好地复制带有 BOM 文件的小型原始文件之一。只是剥离了所有 BOM 的组合文件会导致问题。

谢谢。

4

1 回答 1

2

UTF-8 中没有字节顺序的歧义,因此不需要 BOM。处理 UTF-8 的任何程序都不应该需要这样的东西。如果 BOM 在 UTF-8 流的开头意外出现,则它始终是字节 EF BB BF。从 UTF-8 中删除 BOM 的正确方法是首先检查它是否以这三个字节开头,然后删除这些字节。如果从不以这三个字节开头的 UTF-8 流中删除三个字节,则不是在删除 BOM,并且可能会损坏 UTF-8。

于 2013-06-10T23:49:14.933 回答