C#使用GBK或GB2312编码

312次阅读
没有评论

有时候在对字符集进行编码的时候,可能要用到GBK或着GB2312编码。如果直接使用的话,会抛异常:”GBK’ is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

其原因是没有注册这个字符集,要使用这个编码格式,首先要注册这个编码格式。

微软在包“System.Text.CodePagesEncodingProvider”中提供了我们所需要的编码。首先在项目中安装nuget包。

Install-Package System.Text.Encoding.CodePages -Version 5.0.0

或使用nuget包管理器搜索安装。

使用:

static void EncodingTest()
{
    string str = "我爱中华!";
    //注册
    Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
    var bytes = Encoding.GetEncoding("GBK").GetBytes(str);
    int strByteLength = bytes.Length;
}

此时通过 Encoding.GetEncoding("GBK") 就不会出现上面的异常了。

afirefish
版权声明:本站原创文章,由afirefish2021-08-30发表,共计611字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
载入中...