在UTF 8字符集中,乙個中文字並不是2位元組

2021-06-18 02:47:10 字數 921 閱讀 5173

在utf-8字符集中,乙個中文字並不是2位元組

在utf-8字符集中乙個中文字

佔2個位元組的:0個

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

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

utf-8是一種unicode編碼方式。他是一種不等幅的編碼方式,utf-8編碼的位元組長度取決於所要編碼的字元在iso   10646中的編碼值。在utf-8中,不同的字元,可能需要1-6個位元組來進行編碼。對於單位元組的utf-8編碼,該位元組的最高位為0,其餘7位用來對字元進行編碼(等同於ascii碼)。對於多位元組的utf-8編碼,如果編碼包含n個位元組,那麼第乙個位元組的前n位為1,第乙個位元組的第n+1位為0,該位元組的剩餘各位用來對字元進行編碼。在第乙個位元組之後的所有的位元組,都是最高兩位為"10",其餘6位用來對字元進行編碼。 

例如「未」字,其編碼為:0xe69caa,轉換為二進位制為:1110   0110   1001   1100   1010   1010,從這裡可以看出,該字在utf-8編碼下本身就是3個位元組。 

所以,在utf-8中,乙個中文字並不是2個位元組,而是超過了兩個位元組。並不是所有的中文字最後結尾都是0xaa。

關於這個問題,表示很理解,隔幾天看看圖形學,這學期學學計算機組成原理之類的 ,看看到底是怎麼表示額=。。。

utf-8是不定長的,根據左側位1的個數來決定占用了幾個位元組

false的:

utf-8可以根據字的第乙個位元組移位推出長度的

0******x

110***xx 10******

1110***x 10****** 10******

11110*** 10****** 10****** 10******

用notepad++開啟個文字檔案,格式—轉為utf-8編碼格式,用十六進製制工具開啟看一下就明白了。

用記事本另存為也可以

在UTF 8字符集中,乙個中文字並不是2位元組

在utf 8字符集中乙個中文字 佔2個位元組的 0個 佔3個位元組的 基本等同於gbk,含21000多個漢字 佔4個位元組的 中日韓超大字符集裡面的漢字,有5萬多個 utf 8是一種unicode編碼方式。他是一種不等幅的編碼方式,utf 8編碼的位元組長度取決於所要編碼的字元在iso 10646中...

在UTF 8中,乙個漢字為什麼需要三個位元組?

unicode是萬能編碼,包含了所有符號的編碼,它規定了所有符號在計算機底層的二進位制的表示順序。有關unicode為什麼會出現就不敘述了,unicode是針對所有計算機的使用者定義一套統一的編碼規範,這樣計算機使用者就避免了編碼轉換的問題。unicode定義了所有符號的二進位制形式,也就是符號如何...

utf 8的英文本母和中文漢字是乙個字元佔幾個位元組

英文本母 位元組數 1 編碼 gb2312 位元組數 1 編碼 gbk 位元組數 1 編碼 gb18030 位元組數 1 編碼 iso 8859 1 位元組數 1 編碼 utf 8 位元組數 4 編碼 utf 16 位元組數 2 編碼 utf 16be 位元組數 2 編碼 utf 16le 中文漢字...