问题:瑞典文字的“æ”在控制台中无法正确的显示?
String[] strings1 = { "case", "encyclopædia", "encyclopædia", "Archæology" };
程序运行后 显示效果如下:
我们通过在控制台的标题栏点击右键》属性,查看当前控制台显示所用的编码格式是:当前代码页936(ANSI/OEM-中文简体 GBK),它对应的是操作系统中,区域》语言管理设置》当前区域 如下图所示:
当前代码页936(ANSI/OEM-中文简体 GBK)是什么意思呢?
代码页:code page 简体中文的code page值为936,繁体中文的code page值为950(表示Big-5编码)
ANSI:实ANSI并不是某一种特定的字符编码,而是在不同的系统中,ANSI表示不同的编码。你的美国同事Bob的系统中ANSI编码其实是ASCII编码(ASCII编码不能表示汉字,所以汉字为乱码),而你的系统中(“汉字”正常显示)ANSI编码其实是GBK编码
详细:https://zhuanlan.zhihu.com/p/27136737
通过以上分析我们得出 :控制台显示编码格式是GBK 无法显示瑞典文字。所以我们要修改控制台的显示编码格式(InputEncoding)。
解决方案
在要输出中文的语句上加上这一行即可解决乱码问题
Console.OutputEncoding = System.Text.Encoding.Unicode; Console.WriteLine("打印中文");