1)指定了編碼,對應的字符集就指定了;
2)ASCII:
老美髮明的-->英語、字符、回車、退格等;
生活中的文字和計算機中文字對應關係;
IOS-8859-1:
歐洲的,拉丁等-->單字節編碼,兼容ASCII
GBXXX:
GB2312: 簡體中文 7000多-->單字節
GBK: 21003個-->雙字節編碼(默認)
GB18030: 70244個漢字-->1 2 4個字節組成,支持少數民族的.
Unicode:
萬國碼
包含世界所有國家的文字,最多使用4個字節的數字來表達每個字母、符號或者文字.
UTF-8(最常用,互聯網協議都支持),支持1-4個字節爲每個字符編碼:
1.128個US-ASCII字符,只需要一個字節編碼
2.拉丁文等字符,需要2個字節編碼
3.大部分常用字(含中文),使用3個字節編碼
4.其它極少Unicode輔助字符,使用4字節編碼(如:藏文)
UTF-16
UTF-32
3)編碼表的本質:生活中的文字和計算機中二進制的對應規則.
4)IDE默認 utf-8
windows系統默認是GBK編碼(ANSI)
5)轉換流的出現:
FileReader讀取GBK出現亂碼的原因:
FileReader做的事情是:
讀取字節-->查詢UTF-8編碼表-->轉換爲我們能看懂的字符;
因此如果不是UTF-8編碼,FileReader則出錯,解碼不了;
6)InputStreamReader extends Reader:
InputStreamReader: 是 `字節流通向字符流的橋樑`,它使用指定的charset讀取字符並將其解碼爲字符,
它使用的字符集可以由名稱指定或顯示指定,或者可以接收平臺默認的字符集.
7)GBK: 你好 -55-44 -33-34-->共4個字節, 2個字節存儲一箇中文
UTF-8: 你好 -11-12-23 -19-56-78-->共6個字節, 3個字節存儲一箇中文
8)InputStreamReader強大之處: 可以查詢指定的碼錶
9)OutputStreamWriter:
編碼作用: 把能看懂的字符-->變爲看不懂的字節