1.字符集Charset:
编码:字符串 -> 字节数组
解码:字节数组 -> 字符串
2.获取NIO支持的所有字符集:
public class TestChannel{
@Test
public void test5(){
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());
}
}
}
3.编码:
public class TestChannel{
@Test
public void test6(){
Charset cs1 = Charset.forName("GBK");
//获取编码器
CharsetEncoder ce = cs1.newEncoder();
CharBuffer cBuf = CharBuffer.allocate(1024);
cBuf.put("这是个测试!");
cBuf.flip();
//编码
ByteBuffer bBuf = ce.encode(cBuf);
for(int i = 0 ; i < 12 ; i++){
System.out.println(bBuf.get());
}
}
}
4.解码:
public class TestChannel{
@Test
public void test6(){
Charset cs1 = Charset.forName("GBK");
//获取编码器
CharsetEncoder ce = cs1.newEncoder();
//获得解码器
CharsetDecoder cd = cs1.newDecoder();
CharBuffer cBuf = CharBuffer.allocate(1024);
cBuf.put("这是个测试!");
cBuf.flip();
//编码
ByteBuffer bBuf = ce.encode(cBuf);
for(int i = 0 ; i < 12 ; i++){
System.out.println(bBuf.get());
}
//解码
bBuf.flip();
CharBuffer cBuf2 =cd.decode(bBuf);
System.out.println(cBuf2.toString());
}
}