有没有什么办法可以写出无论什么格式的txt都可以正确读出内容
还有一般txt默认的保存格式不是这个ascii格式么? s = File.ReadAllText(textBox1.Text,Encoding.Default); 这样可以读出来
但是如果我想 s = File.ReadAllText(textBox1.Text,Encoding.GetEncoding("???")); 这样写的话,???应该怎么写?
------解决思路----------------------
1:不要去使用Encoding.Default,它跟着系统设置走,不同机器得到的不一样的。
2:判断文件是否是utf8,可以判断BOM头,就是文件开始的3个字节,前三个字节是 0xEF,0xBB,0xBF 就是utf8
3:但是BOM是可选的,所以不是所有utf8的文本文件都带BOM头,所以不能作为绝对判断依据(前三个字节符合2,那就几乎肯定是utf8,如果不是,那也不一定不是。)
4:最后只能自己判断,utf8编码是按照一定规定的,作为一种可变长度,1-3个字节都有一定规律。如果所有字节都符合这种规律,那么它就是utf8的,但是为了性能,通常我只判断一部分而不是整个文件。具体自己baidu/google UTF8模板。
5:如果使用4的方式,判断的样本不能太少,否则误判的可能性会很大,因为部分utf8模板和gb重叠的。比如 “联通” 两个字
------解决思路----------------------
给个现成的
http://blog.csdn.net/ajianchina/article/details/47149009