需要判断文件流的前三个字节来判断编码。
或者使用
StreamReader sr = new StreamReader("filepath", true/*detectEncodingFromByteOrderMarks*/);

解决方案 »

  1.   

    通常,当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字
    符集的哪种编码保存的。软件有几种途径来决定文本的字符集和编码,
    最标准的途径是检测文本最开头的几个字节,楼主可以以不同编码保存后研究一下各种格式看看.比如开头字节 Charset/encodingEF BB BF UTF-8FE FF UTF-16/UCS-2, little endianFF FE UTF-16/UCS-2, big endianFF FE 00 00 UTF-32/UCS-4, little endian.00 00 FE FF UTF-32/UCS-4, big-endian.