日期:2014-05-20  浏览次数:20802 次

请教Big5与GB2312之间的转换问题
如题,   大家有什么办法么?

------解决方案--------------------
// 主要利用System.Text命名空间中的Encoding类来实现编码转换
foreach(EncodingInfo ei in Encoding.GetEncodings())
{
Encoding e = ei.GetEncoding();
Console.Write( "{0,-6} {1,-25} {2,-40} ", ei.CodePage, ei.Name, ei.DisplayName);
Console.WriteLine();
}
这段代码打印出所有dotNET支持的编码
其中
936 gb2312 Chinese Simplified (GB2312)
950 big5 Chinese Traditional (Big5)


string unicodeString = "This string contains the unicode character Pi(\u03a0) ";

// 创建GB2312和Big5的Encoding对象
Encoding gb2312 = Encoding.GetEncoding(936);
Encoding big5 = Encoding.GetEncoding(950);

// 将Unicode编码转换为Big5编码,放在一个字节数组里
byte[] big5Bytes = big5.GetBytes(unicodeString);

// 将Big5编码转换为GB2312编码,放在一个字节数组里
byte[] gb2312Bytes = Encoding.Convert(big5, gb2312, big5Bytes);

// 将GB2312编码转换为Unicode编码,返回一个String对象
string unicodeString2 = gb2312.GetString(gb2312Bytes);

Console.WriteLine( "Original string: {0} ", unicodeString);
Console.WriteLine( "Converted string: {0} ", unicodeString2);

------解决方案--------------------
首先,添加引用Microsoft.VisualBasic;
在程序中使用
string resultStr = Microsoft.VisualBasic.Strings.StrConv(yourStr, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
可以把简体中文转换成繁体中文。
改变第二个参数,可以转换为其它。