1. 程式人生 > >java輸入輸出(13) 字符集和CharSet

java輸入輸出(13) 字符集和CharSet

  1. 簡而言之,把看得懂字元轉換成看不懂的二進位制數就是編碼,將二進位制數轉換成看得懂的字元就是解碼
  2. 字符集其實是很簡單,沒有任何技術難度的,只是為了解決二進位制序列和字元之間的對應關係,需要一個大家都認同的字符集而已。
  3. 具體的講解穿插在程式碼中
    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));
    //        這一步是將緩衝區的內容解碼後輸出,既輸出孫悟空
        }
    }