【发布时间】:2010-09-22 05:36:14
【问题描述】:
我有一个 HTTPHandler,它正在读取一组 CSS 文件并将它们组合起来,然后对它们进行 GZipping。但是,一些 CSS 文件包含字节顺序标记(由于 TFS 2005 自动合并中的错误),并且在 FireFox 中,BOM 被作为实际内容的一部分被读取,因此它搞砸了我的类名等。我该如何剥离出BOM字符?有没有一种简单的方法可以做到这一点,而无需手动通过字节数组寻找“”?
【问题讨论】:
-
BOM 是出现在实际文本本身中,还是刚开始出现?我会惊讶地在数据开头以外的任何地方看到它——在这种情况下,只需忽略前 3 个字节(假设 UTF-8)就可以了。
-
FWIW,您可以在Notepad++ 中打开文件并在没有字节顺序标记的情况下保存它们。这是我必须在this question 中做的事情。
-
我在遇到这个问题后写了following post。本质上,我没有使用 BinaryReader 类读取文件内容的原始字节,而是使用带有特定构造函数的 StreamReader 类,该构造函数会自动从我试图检索的文本数据中删除字节顺序标记字符。
标签: c# byte-order-mark