问题:
今天写自己的一个小项目练练手,编码用的是Encoding.Default,发现中文都是乱码的。
好嘛,那我Encoding.GetEncoding("gb2312")总行了吧。
然后....

原因:
是由于.NET Core的Default始终是UTF8Encoding
还有,上面的报错,这货根本不支持GB2312的编码。
这个问题资料的官方文档:
解决:
既然他不是原生支持,那么我们就给手动安装一下
需要的是这个包
System.Text.Encoding.CodePages
NuGet命令:
Install-Package System.Text.Encoding.CodePages
当然,直接在NuGet管理器里面下载也可以

最后,就是在Startup.cs的Configure方法里面注册这个包就好啦~
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);//这个是注册编码的,只要这一行
完整的Configure代码
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);//这个是注册编码的,只要这一行
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                //endpoints.MapControllers();
                endpoints.MapControllerRoute(
                    name:"Default",
                    pattern:"api/{token}/{controller}/{action}"
                );
            });
        }最后,问题解决~


微信扫码查看本文
 
							
							 
           
         
发表评论