これは私が遭遇したインタビューの質問です、私は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バイトは1バイトに対応します詳細については、次の情報を参照してください。
異なる文字セットエンコーディングの英語文字と中国語文字のバイト数
英語の手紙:
バイト数: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