就是想将用户输入的文本转换为指定的编码格式,如果GB2312,UTF-8等等,不管用户输入的是什么格式,都进行转换。

解决方案 »

  1.   

    利用 System.Text.Encoding 进行编码转换,以 GB2312 和 UTF-8 为例,byte[] utf8Bytes = Encoding.UTF8.GetBytes(utf8Str);
    byte[] gb2312Bytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("gb2312"), utf8Bytes);
    gb2312String = Encoding.GetEncoding("gb2312").GetString(gb2312Bytes);
      

  2.   

    编码转换需要搞清楚几个概念:
    字符串string是无编码的,虽然实际上可以看作 byte[] + Unicode。
    字节流byte[]才是有编码的。基本的编码转换实际上就只有两种操作:
    从有编码的字节流转成无编码的字符串,byte[] + Encoding => string
    从无编码的字符串转成有编码的字节流,string => byte[] + Encoding当然.net提供了 byte[] + Encoding1 => byte[] + Encoding2 的操作,一般情况中间还是要转成byte[] + Unicode的。