可靠地做到这一点的唯一方法是寻找字节顺序标记 http://en.wikipedia.org/wiki/Byte-order_mark在文本文件的开头。 (此 blob 更一般地表示所使用的字符编码的字节顺序,以及编码 - 例如 UTF8、UTF16、UTF32)。不幸的是,此方法仅适用于基于 Unicode 的编码,在此之前的编码无效(必须使用不太可靠的方法)。
The StreamReader http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspxtype 支持检测这些标记来确定编码 - 您只需将一个标志传递给参数,如下所示:
new System.IO.StreamReader("path", true)
然后您可以检查的值stremReader.CurrentEncoding
确定文件使用的编码。但请注意,如果不存在字节编码标记,则CurrentEncoding
将默认为Encoding.Default
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)