从AJAX发布的字符串中删除BOM字符

时间:2012-10-23 06:52:18

标签: c# .net byte-order-mark

我的内容包含多个BOM(EF BB BF)字符,我想删除它们。字符位于字符串的中间,我想简单地将它们全部删除。

数据来自JavaScript源代码,我从CKEditor实例获取。然后我发布变量并在后端读取它作为字符串,BOMS就在那里。现在,它们按原样保留,但是当解释字符并开始显示中间内容时,这会导致后处理错误。我怀疑它们来自于我的CKEditor复制的东西。

我可以通过char逐步查看字符串char,但我不知道如何与BOM进行比较。是否可以比较字符串字节的十六进制值并比较三个字节序列?

2 个答案:

答案 0 :(得分:4)

utf-8 BOM字节转换为\ufeff。 Unicode字符“零宽度不间断空间”,看不到它们,听不到它们。用以下内容过滤掉它们:

   var good = bad.Replace("\ufeff", "");

答案 1 :(得分:0)

尝试以下方法:

CleanString = DirtyString.Replace("\u00EF\u00BB\u00BF", null);