经过转换得到的字串无法还原
string strText = System.Text.Encoding.ASCII.GetString(System.Text.Encoding.Default.GetBytes("我"));
strText = System.Text.Encoding.Default.GetString(System.Text.Encoding.ASCII.GetBytes(strText));
MessageBox.Show(strText);
得到的并不是"我"
我要怎么样才能得到原来的字符?

解决方案 »

  1.   

    ASCII会丢失数据,经过转换之后数据丢失当然得不到原来的数据。
      

  2.   

    简单的说ASCII编码任何大于255的字符都是"?"号,就是乱码,实际上这个数据已经和原来不一样了。
      

  3.   

    string strText = System.Text.Encoding.ASCII.GetString(System.Text.Encoding.Default.GetBytes("我"));
    strText = System.Text.Decoding.Default.GetString(System.Text.Decoding.ASCII.GetBytes(strText));前面编码,下边当然要解码,晕
      

  4.   

    byte[] bydata=System.Text.Encoding.Default.GetBytes("我");
    string strText=System.Text.Decoding.Default.GetString(bydata));梦在流浪 说得正确!
      

  5.   

    错了,不是大于255,而是大于127的字符ASCII编码都是乱码。ASCII编码是一个字节编码成一个字符。System.Text.Encoding.Default.GetBytes("我")得到的值为{206,210},两个字节都大于127,这样编码之后肯定会和原来不一样了。