有时候在对字符集进行编码的时候,可能要用到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")
就不会出现上面的异常了。
文章评论