我了解的字符編碼
阿新 • • 發佈:2019-02-23
二進制 不同 漢字 code 基礎 gb2312 學習 浪費 asc
我了解的字符編碼
學習了一些編碼知識,想對其進行記錄並加入一些我的體會
ASCII碼
美國信息交換標準代碼.
信息科學起源於美國,最初的編碼也起源於美國,所以ASCII碼裏的文字編碼只有英文字符
- 采用1Byte(8位二進制數)編碼,所以最多只有256種可能的字符
- 被大部分後來的編碼兼容,這也是為什麽我們在改變編碼時英文字符不會亂碼
GBK
漢字內碼擴展規範
在ASCII的基礎上擴展了漢字編碼,每個字符占2個字節
GB2312 -> GBK(支持繁體) -> GB18030(加入了日文,朝鮮語等)
UNICODE 字符集
Unicode 的建立旨在統一編碼,在世界上大多數書寫系統中表達的文本都被其包含
UTF-8
utf-8 是萬維網上的主要編碼,在編程時,也大多使用utf-8進行編碼
采用變長編碼,存儲效率比較高,推薦使用
UTF-16 與 UTF-32
utf-16 為定長編碼,固定2個字節,Java中程序內部的編碼便為utf-16
utf-32 采用4字節 處理速度較快,但浪費了大量的空間,影響傳輸速度,較少被使用.
ANSI編碼
- Windows上非Unicode的默認編碼
- 不同系統的默認編碼不同
- 記事本默認采用ANSI保存,所以使用其他編輯器打開記事本寫的文件,漢字可能會亂碼
字節序
在一些編碼中,高低位字節存儲順序不同.
- Big Endian : 高位字節存在低地址,低字節存在高地址
- Little Endian : 與前者相反
例如, 0XABCD
Big Endian:
0000: AB
0001: CD
Little Endian:
0000: CD
0001: AB
我了解的字符編碼