剑轩

c# 一个中文按照两个字节处理

电脑版发表于:2019/6/3 21:10


一个字等于多少个字节,是一个不严谨的问法。因为使用不同的编码方式获取的字节数是不同的


英文字母:

字节数 : 1;编码:GB2312

字节数 : 1;编码:GBK

字数 :    1;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 1;编码:UTF-8

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE


中文汉字:

字节数 : 2;编码:GB2312

字节数 : 2;编码:GBK

字节数 : 2;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 3;编码:UTF-8

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE


所以想要一个中文当中两个字节处理的话,可以这样写


int count = Encoding.GetEncoding("GB2312").GetBytes("中级").Length;
Console.WriteLine(count);

但是...在net core中居然说不支持gb2312编码方式

试试GBK呢,果然还是不支持......


安装System.Text.Encoding.CodePages:

Install-Package System.Text.Encoding.CodePages

居然还不行,我勒个去......我想出教室了啊


要在ConfigureServices注入一下才行!

  Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


然后发布之后又报错我艹,错误日志也不报错一下

哎还是自己太着急了,想早点下班,有错误日志的,错也很简单






关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢