日期:2014-05-17  浏览次数:20426 次

生成txt文件去掉BOM
RT:
代码生成txt文件  但是要去掉前面的bom  不然程序不识别。。   能帮忙的THANKS

------解决方案--------------------
文件名前面的bom吗? 

string a = "bomabcd.txt";//文件名
            string b = string.Empty;
            if (a.StartsWith("bom"))
            {
                b = a.Remove(0, 3);
            }
            System.IO.File.Move(a, b);//移动文件

------解决方案--------------------
BOM是Byte order mark 是用来标记文本编码的标记.

如果要移除,很简单的.只是需要判断到底是要移除两位还是三位

因为UTF-8 / UTF-16的BOM长度不一样,参考 http://en.wikipedia.org/wiki/Byte_order_mark

使用binaryReader读取文档的前几个字节(根据UTF-8 / UTF-16的BOM长度不一样),然后判断是否匹配对应的BOM,如果对应,直接移除就OK.
------解决方案--------------------
有 bom 才方便文件编辑器识别是否utf-8啊。