代码如下
Code
string src = "中文里有English能否正常显示?";
byte[] dftBytes = Encoding.Default.GetBytes(src);
byte[] ascBytes = Encoding.Convert(Encoding.Default, Encoding.ASCII, dftBytes);
string dst = Encoding.ASCII.GetString(ascBytes);
Console.WriteLine(dst);
????English???????
不能转换为 ASCII, 你可以看看你那个 ascBytes 的内容,所有的中文部分都是 值为 63 的字符,就是'?'
也就是说将中文转换为ASCII是,将原有信息丢失了。
建议转换为 UTF-8,当然按楼上所说转换为 GB2312也可以。
Code
byte[] ascBytes = Encoding.Convert(Encoding.Default, Encoding.ASCII, dftBytes);
你把代码转为ASCII编码当然有问题了,是GB2312编码。