java里面字符集和Charset類


這里涉及兩個概念:編碼、解碼。

編碼(encode):把明文的字符序列轉化成二進制的字節序列。

解碼(decode):把二進制的字節序列轉換成明文的字符序列。

java默認的使用Unicode字符集,但是有的操作系統不支持,所以當從操作系統讀取到java程序的時候,就可能出現亂碼的情況。

jdk1.4提供了Charset類來處理字節序列和字符序列之間的轉換。Charset類是不可變類

Charset類提供了一個availiableCharset()靜態方法來獲取當前jdk支持的所有字符集。

常用的字符集:

GBK:簡體中文。BIG5:繁體中文。ISO-8859-1:ISO拉丁字母表No.1,也叫ISO-LATIN-1.UTF-8:8位UCS轉換格式。

知道了字符集的別名之后,就可以使用Charset的forName()方法,創建字符集對象。如下

Charset cs = Charset.forName("UTF-8");

獲得Charset對象之后就可以調用該對象的newDecode()/newEncode()這兩個方法返回CharsetDecoder/CharsetEncoder對象,這兩個對象代表Chars的解碼器和編碼器。調用CharsetDecoder的decode方法就可以將字符序列字節序列轉換成字符序列(ByteBuffer)->(CharBuffer),同理調用encode就可以將字符序列轉換成字節序列

(CharBuffer)->(ByteBuffer).

(String)->(ByteBuffer)

在String類里面提供了一個getBytes(String charset)方法。該方法返回byte[],該方法同樣可以將制定字符集轉換成字節序列。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM