乙個漢字佔多少位元組

2021-10-19 21:37:33 字數 1708 閱讀 8099

1、gbk編碼,乙個漢字佔2個位元組。

2、utf-16編碼,通常漢字佔2個位元組,cjkv擴充套件b區、擴充套件c區、擴充套件d區中的漢字佔4個位元組(一般字元的unicode範圍是u+0000至u+ffff,而這些擴充套件部分的範圍大於u+20000,因而要用兩個utf-16)。

3、utf-8編碼是變長編碼,通常漢字佔3個位元組,擴充套件b區以後的漢字佔4個位元組。

string a = "名";

timber.d("utf-8編碼長度:"+a.getbytes("utf-8").length);

timber.d("utf-16編碼長度:"+a.getbytes("utf-16").length);

timber.d("gbk編碼長度:"+a.getbytes("gbk").length);

timber.d("gb2312編碼長度:"+a.getbytes("gb2312").length);

timber.d("-----------------分割線--------------------");

string b = "b";

timber.d("utf-8編碼長度:"+b.getbytes("utf-8").length);

timber.d("utf-16編碼長度:"+b.getbytes("utf-16").length);

timber.d("gbk編碼長度:"+b.getbytes("gbk").length);

timber.d("gb2312編碼長度:"+b.getbytes("gb2312").length);

結果:

2021-02-23 13:11:26.991 14738-14738/com.sumansoul.myviewdemo d/mainactivity: utf-8編碼長度:3

2021-02-23 13:11:26.992 14738-14738/com.sumansoul.myviewdemo d/mainactivity: utf-16編碼長度:4

2021-02-23 13:11:26.995 14738-14738/com.sumansoul.myviewdemo d/mainactivity: gbk編碼長度:2

2021-02-23 13:11:26.996 14738-14738/com.sumansoul.myviewdemo d/mainactivity: gb2312編碼長度:2

2021-02-23 13:11:26.996 14738-14738/com.sumansoul.myviewdemo d/mainactivity: -----------------分割線--------------------

2021-02-23 13:11:26.997 14738-14738/com.sumansoul.myviewdemo d/mainactivity: utf-8編碼長度:1

2021-02-23 13:11:26.997 14738-14738/com.sumansoul.myviewdemo d/mainactivity: utf-16編碼長度:4

2021-02-23 13:11:26.998 14738-14738/com.sumansoul.myviewdemo d/mainactivity: gbk編碼長度:1

2021-02-23 13:11:26.998 14738-14738/com.sumansoul.myviewdemo d/mainactivity: gb2312編碼長度:1

列舉佔多少位元組?

網上暫時只找到了這種描述 標準c並沒有明確規定列舉型別占用空間的大小,標準中只是說 列舉型別的尺寸是以能夠容納最大枚舉子的值的整數的尺寸 同時標準中也說明了 列舉型別中的枚舉子的值必須要能夠用乙個int型別表述 也就是說,列舉型別的尺寸不能夠超過int型別的尺寸,但是是不是必須和int型別具有相同的...

Oracle中漢字到底佔多少個位元組

之前本人認為乙個漢字都是佔兩個位元組的,mssql server如此 至少在我的理解範圍之內,如果有誤還請大家糾正 但是最近在使用oracle資料庫,發現了一些特殊的東西,那就是,當你用兩個函式 分別是length和lengthb,這兩個函式到底是幹什麼用的,我想不需要我說明,大家查幫助就可以了 進...

ORACLE中乙個字元佔多少位元組?

22.1 問題描述 或許你會說乙個中文字元佔2個位元組,這是一定的?如何計算乙個字串的位元組數?22.2 解決方案 在oracle中乙個字元特別是中文佔幾個位元組是不同的。比如我創立乙個表create table test ly a varchar2 4 b nvarchar2 4 你說a列能插入兩...