關於字符集,之前一直就只知道寫**時成員間統一用utf-8,就不會出現問題,也沒有繼續深入**,今天在網上搜了一些資料,總算弄清楚了,下面大致以簡明的方式總結一下
具體: unicode 字符集為每乙個字元分配乙個碼位,例如「知」的碼位是 30693,記作 u+77e5(30693 的十六進製制為 0x77e5)
廣義的 unicode 是乙個標準,定義了乙個字符集以及一系列的編碼規則,即 unicode 字符集和 utf-8、utf-16、utf-32 等等編碼……
utf-8 顧名思義,是一套以 8 位為乙個編碼單位的可變長編碼。會將乙個碼位編碼為 1 到 4 個位元組:
根據上表中的編碼規則,之前的「知」字的碼位 u+77e5 屬於第三行的範圍: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 按照 utf-8 編碼為位元組序列 e79fa5 的過程。反之亦然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
Unicode 和 UTF 8 有何區別
unicode是字符集,utf8是unicode的一種編碼方式 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態...
Unicode 和 UTF 8有何區別
unicode 和 utf 8有何區別 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們...
Unicode 和 UTF 8 有何區別
unicode是字符集,utf8是unicode的一種編碼方式 很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態...