Unicode和UTF 8有和區別

2021-09-14 08:43:30 字數 992 閱讀 4953

關於字符集,之前一直就只知道寫**時成員間統一用utf-8,就不會出現問題,也沒有繼續深入**,今天在網上搜了一些資料,總算弄清楚了,下面大致以簡明的方式總結一下

具體: unicode 字符集為每乙個字元分配乙個碼位,例如「知」的碼位是 30693,記作 u+77e5(30693 的十六進製制為 0x77e5)

廣義的 unicode 是乙個標準,定義了乙個字符集以及一系列的編碼規則,即 unicode 字符集和 utf-8、utf-16、utf-32 等等編碼……

utf-8 顧名思義,是一套以 8 位為乙個編碼單位的可變長編碼。會將乙個碼位編碼為 1 到 4 個位元組:

u+ 0000 ~ u+ 007f: 0******x

u+ 0080 ~ u+ 07ff: 110***xx 10******

u+ 0800 ~ u+ ffff: 1110***x 10****** 10******

u+10000 ~ u+1ffff: 11110*** 10****** 10****** 10******

根據上表中的編碼規則,之前的「知」字的碼位 u+77e5 屬於第三行的範圍:

7           7    e    5    

0111 0111 1110 0101 二進位制的 77e5

--------------------------

0111 011111 100101 二進位制的 77e5

1110***x 10****** 10****** 模版(上表第三行)

11100111 10011111 10100101 代入模版

e 7 9 f a 5

這就是將 u+77e5 按照 utf-8 編碼為位元組序列 e79fa5 的過程。反之亦然

Unicode 和 UTF 8 有何區別

unicode是字符集,utf8是unicode的一種編碼方式 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態...

Unicode 和 UTF 8有何區別

unicode 和 utf 8有何區別 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們...

Unicode 和 UTF 8 有何區別

unicode是字符集,utf8是unicode的一種編碼方式 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態...