首页 > 其他分享 >如何让.NET Core支持GB2312和GBK

如何让.NET Core支持GB2312和GBK

时间:2024-02-21 17:25:20浏览次数:25  
标签:Core Encoding 程序包 GBK GB2312 NET

在.NET Core中,默认是不支持GB2312和GBK编码的。

若果强制使用Encoding.GetEncoding(“GB2312”)的时候会抛出异常。

所以在.NET Core中如果我们要使用GB2312和GBK编码,需要给项目引入一个Nuget包:

包安装

可以使用以下方法来添加 System.Text.Encoding.CodePages:

  Visual Studio环境下:

  • 从“程序包管理器控制台”窗口:

    • 转到“视图”>“其他窗口”>“程序包管理器控制台”

    • 导航到包含 .csproj 文件的目录

    • 请执行以下命令:

      Install-Package System.Text.Encoding.CodePages
  • 从“管理 NuGet 程序包”对话框中:

    • 右键单击“解决方案资源管理器”>“管理 NuGet 包”中的项目
    • 将“包源”设置为“nuget.org”
    • 确保启用“包括预发行版”选项
    • 在搜索框中输入“Swashbuckle.AspNetCore”
    • 从“浏览”选项卡中选择最新的“Swashbuckle.AspNetCore”包,然后单击“安装”

  Visual Studio Code环境下:

    从“集成终端”中运行以下命令:

dotnet add TodoApi.csproj package Swashbuckle.AspNetCore

然后在程序启动入口添加以下代码

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

然后执行以下代码看效果:

using System.Text;

// Register the CodePages encoding provider at application startup to enable using single and double byte encodings.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

// Now can create single and double byte encodings for code pages that are not available in .NET Core.
Encoding encoding = Encoding.GetEncoding("GB2312"); // Western European (Windows)
byte[] encodedBytes = encoding.GetBytes("String to encode");

现在再调用Encoding.GetEncoding("gb2312")就不会抛出异常了。

标签:Core,Encoding,程序包,GBK,GB2312,NET
From: https://www.cnblogs.com/hyjrun/p/18025662

相关文章

  • home-assistant core 源码粗读--对设备历史的处理(三)
    我们已经知道User等保存是直接以json的形式直接保存到文件中。先说结论:设备的检测历史默认保存在sqlite中Thedefault,andrecommended,databaseengineis SQLite whichdoesnotrequireanyconfiguration.ThedatabaseisstoredinyourHomeAssistantconfigurati......
  • home-assistant core 源码粗读--如何管理多用户-用户存储(二)
    程序中搜索User, 很容易命中homeassistant/auth/models.py程序中大量使用了attr.s进行模型的声明。上篇说过dataclass,以及BaseModel,区别见: https://www.modb.pro/db/412679文件中定义了5个模型,这里只需要猜测他们的意思即可,这里重点分析User。程序中搜索User, 很容易命......
  • home-assistant core 源码粗读--程序入口篇(一)
    core源码地址:https://github.com/home-assistant/core/tree/mastercore与其他container等版本区别见: https://www.home-assistant.io/installation/入口:homeassisstant/__main__.py   难点: faulthandler【错误记录的包,C语言编写】,  parser.add_mutually_exclusi......
  • 使用NSSM 把 .net core 开发的控制台程序部署成windows 服务
    0.背景应工作需要需要写个对指定网站附件进行监控,发现有新附件时需要程序进行自动下载,程序设计使用技术如下:开发语言:.net8C# 定时任务:Quartzhttp请求和下载:HttpClienthtml解析:HtmlAgilityPack服务部署工具:NSSM 1.什么是NSSM在windows平台NSSM可以把bat、exe等文件......
  • VMware vsphere 8 虚拟机安装Truenas core 13运行内存占满报警
    使用过Truenas的朋友都知道,在共享运行了一段时间之后,由于Truenas的内存缓存机制,导致系统显示Truenas虚拟机内存已用满,然后报警。首先可以确定,在Truenas系统中,系统内存缓存满并没有任何问题,但是在VMware的管理中并不了解Truenas的运行机制,这里的报警是一定要解决的,现在思路有两条......
  • orchard core 开启openid 使用uniapp结合oidc-client 作为客户端连接
    官方的项目地址:https://github.com/onestar1/OrchardSkills.OrchardCore.OIDC.Vue.js/tree/main/OrchardSkills.OrchardCore.MaterialDesignTheme操作步骤:单独clonehttps://github.com/OrchardSkills/OrchardSkills.OrchardCore.MaterialDesignTheme1、打开Recipes目录下......
  • .Net Core框架容器依赖注入的生命周期
    一.前言框架中依赖注入容器包括了三种生命周期,Singleton、Scoped和Transient。Singleton是全局实例,它存储到根容器上,从任何容器解析都会得到全局唯一的实例。Transient是瞬时实例,它不会存储到容器上,从任何容器解析都会重新实例化一个新的对象。Scoped是域内实......
  • .net core微服务之服务发现
    一:nacoshttps://nacos.io/docs/latest/what-is-nacos/https://github.com/alibaba/nacos二:consulhttps://developer.hashicorp.com/consul/docs?product_intent=consulhttps://github.com/hashicorp/consul服务发现的框架常用的还有zookeepereureka等,这里......
  • 学习总结基于VUE+ASP.NET Core mvc+EFCore+Axios.js+ehcart.js开发一个web应用
    Vue是一个用于构建用户界面(基于数据渲染出用户看到的页面)的渐进式(循序渐进)框架。分为(声明式渲染,基于js包、组建系统、客户端路由、大规模状态管理和构建工具)Vue的使用方法分为:1.Vue核心包开发:局部模块改造;2.Vue核心包+Vue插件工程化开发:整站开发1.开始之前准备下述包 在prog......
  • .net core微服务之网关
    网关:一:apisixdoc:https://apisix.apache.org/zh/docs/apisix/getting-started/README/github:https://github.com/apache/apisix二:Konggithub:https://github.com/Kong/kong三:Ocelotgithub:https://github.com/ThreeMammals/Ocelot四:janusgithub:https://......