using(StreamWriter sw = FileCreateText(@d:\DefaultUTFtxt)) { swWrite(私); } using(StreamWriter sw=new StreamWriter(@d:\StreamUTFtxt falseSystemTextEncodingUTF)) { swWrite(私); } using (SystemIOFileStream fs = SystemIOFileCreate(@d:\ByteUTFtxt)) { byte[] info = SystemTextEncodingUTFGetBytes(私); fsWrite(info infoLength); } 一直以来我认为上面三种方式的结果是一样的没有差别今天才知道不是那么回事 呵呵觉得这个问题比较幼稚的可以不必往下看了 运行结果是一样的都是E A 而会多出一个ZERO WIDTH NOBREAK SPACE也就是EF BB BF 当我们需要通过Byte Order Mark来标示该文件的编码方式的时候请使用方法 以上同样适用于标明BigEndian和LittleEndian的UNICODE |