liduke(天下有雪): 能不能稍微详细一点呢,我是初学者,Encoding.getstring()是把string转换成byte[] 吧 ,不过我想问的是ascii 码转换成 unicode 码的问题,谢谢!!

解决方案 »

  1.   

    我写错了,是把byte[] 传换成 string
      

  2.   

    忘了写结果,这样运行的结果是:得到一堆乱码 。但是要是把服务器端的data += Encoding.Unicode.GetString(bytes,0,bytesRec); 改为:data += Encoding.ASCII.GetString(bytes,0,bytesRec);对于英文可以正常,不过对中文不支持 ,求问大家这是怎么会事呢? 
      

  3.   

    FileStream fs1=new FileStream("c:\\text.txt",FileMode.Open);
    FileStream fs2=new FileStream("c:\\text2.txt",FileMode.Create);
    BinaryReader reader=new BinaryReader(fs1);
    BinaryWriter writer=new BinaryWriter(fs2);
    byte[] bs=reader.ReadBytes((int)fs1.Length);
    MessageBox.Show(bs.Length.ToString());
    bs=System.Text.Encoding.Convert(System.Text.Encoding.ASCII,System.Text.Encoding.Unicode,bs);
    MessageBox.Show(bs.Length.ToString());
    //textBox1.Text=string.Empty;
    writer.Write(bs);
    fs1.Close();
    fs2.Close();
      

  4.   

    中文是unicode编码嘛
    现在的windows都是unicode了
    一个双字,一个字节
      

  5.   

    我将中文按字节读出后,对应的ascii 为63,也就是“?”。
    此程序是ascii->unicode,出现?也就不足为奇了。
      

  6.   

    问题是为什么中文字符会在ascii中表示为63?
      

  7.   

    好奇怪,是不能用reader.ReadBytes((int)fs1.Length);读中文吗?
      

  8.   

    將中文轉換為bytes[]
    bytes[] bArr = Encoding.UTF-8.GetBytes(sContent);//繁體
    bytes[] bArr = Encoding.GetEncoding("GB18030").GetBytes(sContent)//簡體
    將bytes[]轉換為特定中文
    string sContent = Encoding.UTF-8.GetString(bArr);//繁體
    string sContent = Encoding.GetEncoding("GB18030").GetString(bArr);//簡體至於其他編碼,你可以查看函數Encoding.GetEncoding的幫助