java輸入輸出(13) 字符集和CharSet
阿新 • • 發佈:2018-12-09
- 簡而言之,把看得懂字元轉換成看不懂的二進位制數就是編碼,將二進位制數轉換成看得懂的字元就是解碼
- 字符集其實是很簡單,沒有任何技術難度的,只是為了解決二進位制序列和字元之間的對應關係,需要一個大家都認同的字符集而已。
- 具體的講解穿插在程式碼中
import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; public class CharSetTransform { public static void main(String args[]) throws Exception{ Charset cn = Charset.forName("GBK"); // 建立簡體中文對應的Charset // 以下這兩步是建立編碼器和解碼器 CharsetEncoder cnEncoder = cn.newEncoder(); CharsetDecoder cnDecoder = cn.newDecoder(); CharBuffer cbuffer = CharBuffer.allocate(8); // 建立一個緩衝區 // 以下三步為向緩衝區中寫入資料 cbuffer.put('孫'); cbuffer.put('悟'); cbuffer.put('空'); cbuffer.flip(); // 通過flip可以避免月結 ByteBuffer bbuff = cnEncoder.encode(cbuffer); // 將緩衝區中的資料編碼 for(int i=0; i<bbuff.capacity(); i++){ System.out.println(bbuff.get(i)+""); // 將依次輸出編碼後的內容 } System.out.println("\n" + cnDecoder.decode(bbuff)); // 這一步是將緩衝區的內容解碼後輸出,既輸出孫悟空 } }