SELECT PROPERTY( 'CharSet' )
得到字符集cp936,转换如下Byte[] mybyte = System.Text.Encoding.GetEncoding(936).GetBytes("乱码字符串".ToCharArray());
得到结果还是乱码,想了很久也没明白,看来只能暴力一下了
StringBuilder pname = new StringBuilder();
foreach (EncodingInfo ei in Encoding.GetEncodings())
{
Byte[] mybyte = System.Text.Encoding.GetEncoding(ei.CodePage).GetBytes(("乱码字符串".ToCharArray());
pname.Append(ei.Name + "(" + ei.CodePage + "):" + System.Text.Encoding.GetEncoding("gb2312").GetString(mybyte, 0, mybyte.Length) + "\r\n");
}
MessageBox.Show(pname.ToString());
得到ibm850(850)与ibm858(858)可以正常显示中文,问题解决,为什么是850与858也不知道有没有朋友知道.
foreach (EncodingInfo ei in Encoding.GetEncodings())
{
Byte[] mybyte = System.Text.Encoding.GetEncoding(ei.CodePage).GetBytes(("乱码字符串".ToCharArray());
pname.Append(ei.Name + "(" + ei.CodePage + "):" + System.Text.Encoding.GetEncoding("gb2312").GetString(mybyte, 0, mybyte.Length) + "\r\n");
}
MessageBox.Show(pname.ToString());