面试题-字符串转字节
这是遇到的面试题,请问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