7、NIO--字符集Charset
字符集:Charset
编码:字符串-->字节数组
解码:字节数组-->字符串
查看相关的字符集
@org.junit.Test public void test9(){ Map<String, Charset> map = Charset.availableCharsets(); Set<Entry<String, Charset>> set = map.entrySet(); for(Entry<String, Charset> entry : set){ System.out.println(entry.getKey() + "--" + entry.getValue()); } }
可以看到支持的字符集非常多(省略很多)
@org.junit.Test public void test10() throws CharacterCodingException{ Charset charset = Charset.forName("GBK"); //获取编码器 CharsetEncoder charsetEncoder = charset.newEncoder(); //获取解码器 CharsetDecoder charsetDecoder = charset.newDecoder(); CharBuffer charBuffer = CharBuffer.allocate(1024); charBuffer.put("我爱博客园,一个分享经验的地方!!"); charBuffer.flip(); //编码 ByteBuffer bBuf = charsetEncoder.encode(charBuffer); System.out.println("编码------------"); for(int i=0;i <30;i++){ System.out.println(bBuf.get()); } System.out.println("解码-------------"); //解码 bBuf.flip(); CharBuffer cBuf = charsetDecoder.decode(bBuf); System.out.println(cBuf.toString()); }
对应的编码对应相同的解码方式
如果编码和解码的方式不一致则会发生乱码的问题