1.ASCII字符集:僅對英文字符編碼,每個字符用1B編碼,7位二進制足以表示所有ASCII字符集,因此最高位始終為0
2.GBK字符集:GB2312字符集(簡體中文字符集)+BIG5字符集(臺灣地區繁體中文字符集),GBK是簡體中文版Windows系統默認的字符集(不同Windows版本的字符集都互不兼容,但其中的每個字符集都稱作ANSI,因此簡體中文版Windows系統顯示字符集是ANSI,但實際使用的是GBK字符集)
? ? ? ? (1)英文編碼方式:GBK完全兼容ASCII,因此英文編碼與ASCII相同,編碼長度也為1B
? ? ? ? (2)漢字編碼方式:每個漢字用2B編碼,最高位為1(與英文編碼區分),轉數字后是負數
3.Unicode字符集:包含世界各種語言的字符集
? ? ? ? (1)編碼方式:
? ? ? ? ? ? ? ? ①UTF-16編碼規則:用2~4個字節保存。
? ? ? ? ? ? ? ? ②UTF-32編碼規則:固定使用4個字節保存。
? ? ? ? ? ? ? ? ③UTF-8編碼規則:用1~4個字節保存,其中ASCII文字用1字節保存,拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文用2字節保存,中日韓文字、東南亞文字、中東文字用3字節保存,其它語言用4字節保存。對于1個字節的ASCII文字的編碼都是0開頭,而n(n>1)字節的編碼,首個字節以n個1+1個0開頭,其余字節以10開頭。
????????(2)英文編碼方式:Unicode完全兼容ASCII,因此英文編碼與ASCII相同,編碼長度也為1B
? ? ? ? (3)漢字編碼方式:將漢字字符在Unicode中對應數字的二進制xxxxxxxx xxxxxxxx(16位)依次填入到1110xxxx 10xxxxxx?10xxxxxx(16個填充位)中
4.亂碼出現的原因:
? ? ? ? (1)讀取數據時未讀完整個字符
? ? ? ? (2)編碼方式與解碼方式不一致