编码转换问题

代码如下

[object Object]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???????


慕容森
浏览 402回答 2
2回答

喵喵时光机

不能转换为 ASCII, 你可以看看你那个 ascBytes 的内容,所有的中文部分都是 值为 63 的字符,就是'?'也就是说将中文转换为ASCII是,将原有信息丢失了。建议转换为 UTF-8,当然按楼上所说转换为 GB2312也可以。

12345678_0001

byte[] ascBytes = Encoding.Convert(Encoding.Default, Encoding.ASCII, dftBytes);你把代码转为ASCII编码当然有问题了,是GB2312编码。
打开App,查看更多内容
随时随地看视频慕课网APP