java~編碼轉換流 InputStreamReader OutputStreamWriter

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:
	編碼作用: 把能看懂的字符-->變爲看不懂的字節

 

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