原文:asp.net core输出中文乱码的问题

摘要

在学习asp.net core的时候,尝试在控制台,或者页面上输出中文,会出现乱码的问题。

问题重现

新建控制台和站点

    public class Program{public static void Main(string[] args){           Console.WriteLine("您好,北京欢迎你");Console.Read();}}

站点

    public class Startup{// This method gets called by the runtime. Use this method to add services to the container.// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940public void ConfigureServices(IServiceCollection services){}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){loggerFactory.AddConsole();if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.Run(async (context) =>{await context.Response.WriteAsync("您好,北京欢迎你");});}}

那么我们获取“GB2312”编码,然后对其编码呢?

        public static void Main(string[] args){Console.WriteLine("您好,北京欢迎你");try{Console.WriteLine(Encoding.GetEncoding("GB2312"));}catch (Exception ex){Console.WriteLine(ex.Message);}Console.Read();}}

'GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name

上面的大概意思是Encoding 不支持GB2312编码,需要使用Encoding.RegisterProvider方法进行注册Provider。

            try{Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Console.WriteLine(Encoding.GetEncoding("GB2312"));}catch (Exception ex){Console.WriteLine(ex.Message);}Console.Read();

CodePagesEncodingProvider在Nuget包System.Text.Encoding.CodePages

      "System.Text.Encoding.CodePages/4.0.1": {"type": "package","dependencies": {"Microsoft.NETCore.Platforms": "1.0.1","System.Collections": "4.0.11","System.Globalization": "4.0.11","System.IO": "4.1.0","System.Reflection": "4.1.0","System.Resources.ResourceManager": "4.0.1","System.Runtime": "4.1.0","System.Runtime.Extensions": "4.1.0","System.Runtime.Handles": "4.0.1","System.Runtime.InteropServices": "4.1.0","System.Text.Encoding": "4.0.11","System.Threading": "4.0.11"},"compile": {"ref/netstandard1.3/System.Text.Encoding.CodePages.dll": {}},"runtimeTargets": {"runtimes/unix/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": {"assetType": "runtime","rid": "unix"},"runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll": {"assetType": "runtime","rid": "win"}}},

好了,我们修改下代码,先注册,然后输出中文

    try{Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Console.WriteLine(Encoding.GetEncoding("GB2312"));Console.WriteLine("您好,北京欢迎你");}catch (Exception ex){Console.WriteLine(ex.Message);}

结语

所以在页面上输出,或者在控制台输出中文的时候,要注意进行注册Provider。

参考

https://msdn.microsoft.com/zh-cn/library/system.text.encoding.registerprovider(v=vs.110).aspx

asp.net core输出中文乱码的问题相关推荐

  1. PHP输出中文乱码的解决方法

    PHP输出中文乱码的解决方法 参考文章: (1)PHP输出中文乱码的解决方法 (2)https://www.cnblogs.com/cyun/p/4146131.html 备忘一下.

  2. 解决Vs输出中文乱码的问题

    解决Vs输出中文乱码的问题 原文:https://blog.csdn.net/c_khalid/article/details/51515675 源程序的运行结果是:中文乱码 首先,这个与VS本身无关 ...

  3. jquery PHP 中文乱码,PHP输出中文乱码怎么解决?

    在建立网站的时候我们会发现,php页面输出乱码,php输出数据库字段也乱码,这要怎么解决?下面本篇文章就来给大家介绍一下解决php输出中文乱码的方法,希望对你们有所帮助. 第一种.HTML和PHP混合 ...

  4. qt5.13.2输出中文乱码

    qt5使用qDebug()输出中文乱码,可以在.pro文件中添加以下的代码: #解决中文编译没法通过,输出中文乱码 msvc {QMAKE_CFLAGS += /utf-8QMAKE_CXXFLAGS ...

  5. Servlet 输出中文乱码的新收获(1)

    又碰到servlet 输出中文乱码的问题,恼火.研究了一下,有了新的发现和认识. 原始代码: java 代码 protected void doGet(HttpServletRequest reque ...

  6. VScode输出中文乱码的解决方法------测试过可以用

    VScode输出中文乱码的解决方法------测试过可以用 参考文章: (1)VScode输出中文乱码的解决方法------测试过可以用 (2)https://www.cnblogs.com/shou ...

  7. php打印出来乱码_PHP输出中文乱码怎么解决?

    在建立网站的时候我们会发现,php页面输出乱码,php输出数据库字段也乱码,这要怎么解决?下面本篇文章就来给大家介绍一下解决php输出中文乱码的方法,希望对你们有所帮助. 第一种.HTML和PHP混合 ...

  8. 彻底解决IDEA输出中文乱码问题

    本文一共有3种方法,针对的情况是输出中文乱码问题 问题描述 无法正确输出中文字符:(请正确分辨自己是哪一种乱码问题!) 解决方法 1.最容易想到 File -> Settings -> F ...

  9. PHP输出中文乱码的解决方法(适合初学者)

    PHP输出中文乱码的解决方法 为什么会出现中文乱码? 一般来说,乱码的出现有2种原因,一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了乱码,第二种就是文件被以错误的 ...

最新文章

  1. 0-1背包问题 动态规划java_C#使用动态规划解决0-1背包问题实例分析
  2. k8s minikube管理镜像相关命令:minikube image list/pull/load
  3. 按字寻址与按字节寻址
  4. PHP快速排序(原地切分)
  5. linux系统管理命令使用,Linux系统管理使用之基本命令(1)
  6. InstallShield LaunchAppAndWait运行另一个程序并等待该程序终止。
  7. 聊聊Socket、TCP/IP、HTTP、FTP及网络编程
  8. 区块链: 编译发布智能合约
  9. 关于synergy的问题
  10. 红警2的经验和秘籍及不是秘笈的秘笈(4)
  11. Hadoop与Hbase 安装下载
  12. xlwings 冻结窗口格 / 冻结首行/ FreezePanes
  13. 组合数(卢卡斯定理)
  14. 蓝牙Profile的概念和常见种类
  15. ts3.03.x cocos实现九宫格/跑马灯抽奖
  16. 【为你剖析笔记本的内部结构】
  17. 【招聘内推】美团招聘搜索推荐算法工程师(核心组)
  18. 对讲机CE认证需做什么测试
  19. 小蒋上门(家庭版) 官网
  20. DeepMind 发布强化学习通用算法 DreamerV3,AI 成精自学捡钻石

热门文章

  1. React之解决类中的this
  2. fadeToggle()
  3. python字符串乘一个数_Python--初识庐山真面目
  4. lua_path环境变量设置linux,ubuntu16.04安装lua环境
  5. php浏览服务器某一文件夹内容,php删除web服务器中指定目录下的指定格式的文件...
  6. cmd imp导入dmp文件_这是一篇长篇入门级数据库讲解:oracle数据库数据导入导出步骤...
  7. 重启计算机后桌面顺序是反的,Win10系统为什么重启电脑之后桌面上的图标排列顺序被打乱该如何处理...
  8. JAVA结课_一点心情,写java结课考试之前
  9. mysql 事务 引擎_mysql引擎和事务
  10. 辅助驾驶等级_双AMR电机位置传感器,助力自动驾驶安全出行