首页 > 代码库 > .net core的控制台乱码问题总结

.net core的控制台乱码问题总结

1. Project.json 添加程序集System.Text.Encoding.CodePages的 引用

"dependencies": {  ...  "System.ComponentModel.TypeConverter": "4.1.0"}

2. 第一行增加 

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 

完整如下:

1 public class Program2 {3         public static void Main(string[] args)4         { 5             Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);  // 尝试将这一行放入下面6,7两行之间试试6             Console.WriteLine("中文怎么能是乱码呢?");7        Console.WriteLine("中文怎么能是乱码呢?");8      }9 }

 

 

3. 最后是关于.net core 不支持System.Text.Encoding.Default的问题
    可使用System.Text.Encoding.GetEncoding(0)替代

注 Windows中的 System.Text.Encoding.Default 所采用的字符集取决于注册表 hkey_current_user/console/codepage的配置

注:为什么.net core 中不在支持System.Text.Encoding.Default? System.Text.Encoding.Default的实现依赖win32 Api

.net core的控制台乱码问题总结