生成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啊。