FCL中提供了UTF7Encoding,UTF8Encoding,ASCIIEncoding,UnicodeEncoding,四种编码解码器,都无法正确的解码ansi编码(多字节字符串),该怎么办?

解决方案 »

  1.   

    ansi编码的字符串,也就是多字节,英文用一个字节表示,中文和其他语言用双字节表示
      

  2.   

    ansi里面写的是什么语言,就用什么语言解码,个人认为只和操作系统有关
    比如中文系统
    StreamReader sr=new StreamReader(@"d:\test.txt",Encoding.GetEncoding("gb2312"));
    //gb2312是保存时的系统语言编码
      

  3.   

    谢谢!使用Encoding.Defalut可以获取与系统区域设置中的默认 ANSI 代码页相关联的编码。
    但是,如果想进一步,确定字符串使用的哪种编码怎么办呢?
      

  4.   

    就像ie中的那样,可以自动选择编码方式。不过确切说,我并不知道有没有这种可能,也不知道ie这个自动选择选对的几率有多大(除gb2312和unicode之外,unicode多数情况下带有字节顺序标记)