【JAVA IO】_字元編碼筆記
本章目標:
瞭解常用的幾種編碼
掌握亂碼的產生原因
3、具體內容
編碼:在電腦世界裡,任何的文字都是以指定的編碼方式存在的,在java程式開發中最常見的是以下幾種編碼:ISO8859-1 、GBK/GB2312、unicode、UTF
iso8859-1編碼屬於單位元組編碼,最多隻能表示0~255的字元範圍,主要在英文上應用。
GBK/GB2312:中文的國際編碼,專門用來表示漢字,是雙位元組編碼。
unicode:java中就是使用此編碼方式,也是最標準的一種編碼,是使用16進位表示的編碼。但此編碼不相容iso8859-1編碼。
UTF:由於unicode不支援iso8859-1編碼,而且容易佔用更多的空間,而且對於英文字母也需要使用兩個位元組編碼,這樣使用unicode不便於傳輸和儲存,因此產生了utf編碼,utf編碼相容了iso8859-1編碼,同時也可以用來表示所有的語言字元,不過utf編碼是不定長編碼,第一個字元長度1-6個位元組不等,一般中文網頁中使用此編碼,因為這樣可以節省空間的。
得到原生編碼顯示
public class CharSetDemo01{ public static void main(String args[]){ System.out.println("系統預設編碼:"+System.getProperty("file.encoding")); //擷取當前系統編碼 }}
可以使用String類轉換字元的編碼。
import java.io.OutputStream ;import java.io.FileOutputStream ;import java.io.File ;public class CharSetDemo02{ public static void main(String args[]) throws Exception { File f = new File("D:" + File.separator + "test.txt") ; // 執行個體化File類 OutputStream out = new FileOutputStream(f) ; // 執行個體化輸出資料流 byte b[] = "中國,你好!".getBytes("ISO8859-1") ; // 轉碼操作 out.write(b) ; // 儲存 out.close() ; // 關閉 }};