日期:2014-05-17 浏览次数:20533 次
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啊。