如下面这段base64编码, 字码为gb2312
suLK1LzyzOXX1g==
其编码前的中文为"测试简体字"但我使用
byte[] aa = Convert.FromBase64String("suLK1LzyzOXX1g==");
MessageBox.Show(Encoding.ASCII.GetString(aa));解析出来的文字却变成"2bJT<rLeWV",哪边错了呢?该怎么还原呢?
注:若是英数文字则无此问题

解决方案 »

  1.   

    byte[] aa = Convert.FromBase64String("suLK1LzyzOXX1g==");
    MessageBox.Show(Encoding.Default.GetString(aa));
      

  2.   

    将   Encoding.Default.GetString(aa)
    改为 Encoding.GetEncoding("GB18030").GetString(aa)
    更好些, 这样明确指出 GB18030 编码, 而不用 Default 编码, 可以做到不依赖于当前的操作系统是中文的Windows还是英文的.
      

  3.   

    Encoding.ASCII 只适用于英数文字, 不适用于中文.