JAVA字符編碼
測試代碼:

























輸出如下:








相關說明:
1、通過System.getProperty("file.encoding")獲取到當前JVM的默認字符編碼方式,如GBK
2、iso8859-1則是應用于英文和歐洲其他語言的單字節編碼字符集,“3f”其實對應就是“?”。
3、utf-8則是unicode編碼的一種轉換方式(Unicode Transformation Format),兼容于ASCII編碼,如對于中文則使用3個字節來存儲,對于英文使用一個字節存儲。
4、utf-16是unicode編碼的另一種轉換方式,每個直接都采用2個字節來存儲,所以不兼容于ASCII;
其中“fe ff”是Byte Order Mark(BOM)表示采用的編碼方式為utf-16。
5、此處的unicode輸出和utf-16本質相同,只不過大小尾序的問題導致單個字節輸出順序相反;
其中對于windows和linux平臺的utf-16默認采用小尾序(LE little Endion),mac平臺采用大尾。
6、gbk和gb2312是中文字符集,對于每個字符均采用2個字節存儲,其中gbk兼容gb2312并且還可表示繁體。
關于存儲字節的計算,假設現在有N個中文和M個英文字符,則如下的計算方式(編碼方式:字節數):
GBK:2*N+M
UTF-8:3*N+M
UTF-16:2*(N+M+1)
ISO8859-1:N+M