2008年9月13日星期六

.NET如何判断文本文件编码

文本文件里是没有存放该文本的编码方式的,需要判断文件流的前三个字节来判断编码。
通常,当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字
符集的哪种编码保存的。软件有几种途径来决定文本的字符集和编码,
最标准的途径是检测文本最开头的几个字节,楼主可以以不同编码保存后研究一下各种格式看看.比如

开头字节 Charset/encoding

EF BB BF UTF-8

FE FF UTF-16/UCS-2, little endian

FF FE UTF-16/UCS-2, big endian

FF FE 00 00 UTF-32/UCS-4, little endian.

00 00 FE FF UTF-32/UCS-4, big-endian.


在.NET里可以使用
StreamReader sr = new StreamReader("filepath", true/*detectEncodingFromByteOrderMarks*/)。//这里的true表示由程序自动判断文件编码

sr.CurrentEncoding //返回编码



没有评论: