12中的英文字母占幾個字節?


byte[] bb="hello".getBytes("gb2312");
System.out.println("bb.length:::"+bb.length);
for(byte bb1:bb)
System.out.println((char)bb1);
運行代碼得到如下結果:
bb.length:::5
h
e
l
l
o


我查了一些資料,都說gb2312中的所有字符都是用二個字節表示。如果是這樣,那我上面的程序中bb字節數組的長度應該是10啊
可結果卻是卻是5.我想請問gb2312中的英文字母符號到底是用幾個字節表示啊?

 

 

ASCII 英文一個字節 
gb2312,gbk 中文兩個字節,英文一個字節 
在中文系統中ansi一般指gb2312或gbk 
GB2312、GBK都屬於雙字節字符集 (DBCS) 
Utf-8 中文三個字節,英文一個字節 
Unicode 中文兩個字節,英文兩個字

 

 

嘿嘿,權威的如何解釋GB2312不是sun公司,而是我們國家自己的標准啊,每一個大專、大學的任何學生,其計算機基礎課程中都會詳細講解GB2312的啊。
byte[] bb="hello".getBytes("gb2312"); 
System.out.println("bb.length:::"+bb.length); 
我查了一些資料,都說gb2312中的所有字符都是用二個字節表示。如果是這樣,那我上面的程序中bb字節數組的長度應該是10啊 
可結果卻是卻是5.我想請問gb2312中的英文字母符號到底是用幾個字節表示啊?
答:GB2312中1區到15區共682個字符或圖形符號都是全角方式下的字符。即:
若byte[] bb="hello".getBytes("gb2312");(注意是全角方式下),bb字節數組的長度就會是10了。
因此:gb2312中的所有字符都是用二個字節表示(是因為:它的字符都是全角方式)。gb2312中不會對半角方式下的字符編碼的(這是ASCII碼的事情),因此:在getBytes("gb2312");轉換時,半角的字符都是一個字節,全角的同樣字符才是兩個字節。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM