這個與採用的編碼有關,GBK/GB2312編碼是2個字節,但是unicode/utf-8等就不同了,這些編碼裏面漢字是長度不是一定的,有的長、有的短,2~4字節。
在查找 UTF-8 編碼資料時發現,很多的帖子說的 UTF-8 編碼裏,一個漢字佔用3個字節,有的還做了個證明,大概是這樣的,創建一個沒有BOM的UTF-8編碼的文本文件,裏面保存了幾個漢字,然後查看文件的大小。我覺得這樣的證明沒有一點說服力,因爲 UTF-8 是變長的,1-6個字節,少量的漢字檢測是不能說明所有的漢字都是的。
後來我又查看了字符映射表-漢語,找到了正確的答案,少數是漢字每個佔用3個字節,多數佔用4個字節。
佔用3個字節的範圍
U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3 共 115 個 U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 - 0xE2 0xBF 0x95 共 213 個 U+3005 - U+3029 : 0xE3 0x80 0x85 - 0xE3 0x80 0xA9 共 36 個 U+3038 - U+4DB5 : 0xE3 0x80 0xB8 - 0xE4 0xB6 0xB5 共 7549 個 U+4E00 - U+FA6A : 0xE4 0xB8 0x80 - 0xEF 0xA9 0xAA 共 44138 個 U+FA70 - U+FAD9 : 0xEF 0xA9 0xB0 - 0xEF 0xAB 0x99 共 105 個
合計: 52156 個
佔用4個字節的範圍
U+20000 - U+2FA1D : 0xF0 0xA0 0x80 0x80 - 0xF0 0xAF 0xA8 0x9D 共 64029 個