Java基礎(一):常見的編碼格式

  • 在計算機中,最小的存儲單元是1個字節,即8個bit,所以能表示的字符範圍是0~255個
  • 人類要表示的符號(ABCD、我,你,他等,在計算機眼中,都是符號)太多,無法用一個字節來完全表示
  • 要解決這個矛盾,必須要有一個新的數據結構char,而從char到bute必須要編碼

一、常見編碼格式

1.ASCII碼

總共128個,用一個字節的低七位表示,0~31是控制字符:如換行、回車、刪除等,32~126是打印字符,可以通過鍵盤輸入並且能夠顯示出來

2.ISO-8859-1

是國際ISO組織對ASCII碼的擴展,涵蓋大多數西歐語言字符,所以應用的最廣泛。ISO-8859-1仍然是單字節編碼,它總共能表示256個字符。

3.GB2312

全稱《信息技術 中文編碼字符集》,雙字節編碼。總的編碼範圍是A1~F7,A1~A9是符號區,總共包含682個符號。B0-F7是漢字區,包含6763個漢字

4.GBK

全稱《漢字內碼擴展規範》,是爲了拓展GB2312,編碼範圍8140-FEFE(去掉XX7F),總共23940個碼位,能表示21003個漢字,編碼兼容GB2312,並且不會亂碼

5.GB18030

全稱《信息技術 中文編碼字符集》 是我國強制標準,可能是單字節、雙字節或者四字節編碼,與GB2312兼容,實際應用並不廣泛。

6.UTF-16

具體定義了Unicode字符在計算機中的存取方法,用兩個字節來表示Unicode的轉化格式,它採用定長的表示方法,不論什麼字符都可以用兩個字節來表示。大大簡化了字符串操作,這也是java中以UTF-16作爲內存的字符串存儲格式的一個很重要的原因

7.UTF-8

彌補UTF-16由於定長造成的存儲空間浪費問題,採用一種變長技術,每個編碼區有不同的字符長度。不同類型的字符可以由1!6個字節組成。

UTF-8有以下編碼規則:

  1. 如果是1個字節,最高位(第8位)爲0,則表示這是1個ASCII字符(00~7F),所以所有的ASCII碼已經是UTF-8了
  2. 如果是1個字節,以11開頭,則連續的1的個數暗示這個字符的字節數,例如:110xxxxx代表他是雙字節UTF-8字符的首字節
  3. 如果是一個字節,以10開始,表示他不是首字節,則需要向前查找才能得到當前字符的首字節。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章