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

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

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

2. 第一行增加 

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 

完整如下:

1 public class Program
2 {
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

原文地址:https://www.cnblogs.com/adou/p/5954498.html