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());