面试题-字符串转字节

这是遇到的面试题,请问i=?;j=?,为什么?

string str1 = "abcd测试一下";
var strToBytes1 = System.Text.Encoding.UTF8.GetBytes(str1);
var i = strToBytes1.Length;
var j = str1.Length;

 

答:i = 16;j = 8   UTF-8编码对应中文一个汉字对应3个字节,一个字母对应一个字节,具体参照下列信息:

 

英文字母和中文汉字在不同字符集编码下的字节数

 

英文字母:

字节数 : 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

  

 

posted @ 2020-04-16 17:45  Homegu  阅读(270)  评论(5编辑  收藏  举报