Encoding iso = Encoding.GetEncoding("iso-8859-1");
                Encoding gb = Encoding.Default;                byte[] bs = gb.GetBytes("我+123+abc");
                byte[] bss = Encoding.Convert(gb,iso, bs);  //转换成iso-8859-1编码的字节流
                byte[] bbs = Encoding.Convert(iso, gb,bss); //转换成gb2312编码的字节流
                char[] chars = gb.GetChars(bss);
                string s = new string(chars);
                MessageBox.Show(s);  //输出:     ?+123+abc汉字的都变成了“?”,该怎么解决呢?另外,哪位大侠能告诉我怎么查看 “U-00000000 - U-0000007F: 0xxxxxxx ”这样的数据呢?

解决方案 »

  1.   

    iso-8859-1 不支持中文,干嘛不用 utf-8 呢。
      

  2.   

    应该是Encoding.GetEncoding的问题,有些解析不了汉子的
      

  3.   

    用iso-8859-1编码是因为我以“set names latin1;” 从mysql中读取存储汉字的字段。我认为c#程序接收的值就是iso-8859-1编码的。
      

  4.   

    数据库里面以前都是用latin1存的。
    虽然是用latin1存的,但是别的程序可以正确的读出中文,比如SQLyog 和 PhP。  所以我觉得是C#里面的转码问题。