1. 程式人生 > >utf-8 中的一個漢字佔幾個位元組

utf-8 中的一個漢字佔幾個位元組

utf-8 中的一個漢字佔幾個位元組

佔 2 個位元組的:〇

佔 3 個位元組的:基本等同於 GBK,含 21000 多個漢字

佔 4 個位元組的:中日韓超大字符集裡面的漢字,有 5 萬多個

1 個 utf8 數字佔 1 個位元組

1 個 utf8 英文字母佔 1 個位元組

在查詢 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 個

合計: 64029 個