日期:2014-05-18  浏览次数:21516 次

关于Encording转码的问题
我在做项目的时候遇到一个问题:

项目中需要在简体环境服务器中(Server2003),调用Webservice获取香港服务器的数据。
直接从香港的服务器的数据库中拿回来的数据(繁体中文),其中的文字在简体服务器中显示为乱码。

于是就在网上查了下编码转化的相关问题,最后用下面的方法解决了问题

C# code

        public static string ConvertString(string lines)
        {
            Encoding gb2312 = Encoding.GetEncoding(936);
            Encoding big5 = Encoding.GetEncoding(950);

            byte[] src = gb2312.GetBytes(lines);

            return Microsoft.VisualBasic.Strings.StrConv(big5.GetString(src), Microsoft.VisualBasic.VbStrConv.SimplifiedChinese);

        }



效果虽然是实现了,乱码变成了简体中文。

但是我实在不明白这几句代码是什么意思,希望高人能够帮我解释下这里每句代码的意思。


谢谢!

------解决方案--------------------
public static string ConvertString(string lines)
{
Encoding gb2312 = Encoding.GetEncoding(936); //定义GB2312的编码对象,关于ENCODING参照MSDN
Encoding big5 = Encoding.GetEncoding(950);

byte[] src = gb2312.GetBytes(lines);//将传入字符串以GB2312的编码存入BYTE数组

return Microsoft.VisualBasic.Strings.StrConv(big5.GetString(src), Microsoft.VisualBasic.VbStrConv.SimplifiedChinese);//转换字符串,用BIG5编码读取BYTE数组,并用简体中文方式转换字符串,参照http://msdn.microsoft.com/zh-cn/library/microsoft.visualbasic.strings.strconv.aspx

}