文本文件生成时的一项注意点(UTF-8)

来源:互联网 发布:mysql 时间小于等于 编辑:程序博客网 时间:2024/04/30 09:10

在通过程序生成文本文件时,发现Windows下的记事本读取乱码,其他第三方工具完成没有问题。

调查后发现是由于UTF8编码的文本文件需要添加BOM信息。通过相关资料显示,在没有BOM信息的

情况下,记事本应该能自动判定,但是某些情况下确实出现了很糟糕的情况。所以如果输出文件是用于windows记事本读取的,

添加BOM会比较有效。

            var sb = new StringBuilder();            var ms = new MemoryStream();                  var bs = Encoding.UTF8.GetBytes(sb.ToString());            ms.Write(new byte[]{239,187,191,},0,3 );//UTF-8格式文件的BOM写入,针对Windows下的记事本读取            ms.Write(bs,0,bs.Length);//文本正文写入


0 0