字符集
一 看支持哪些字符集
//获取字符集
Map<String, Charset> mycharset=Charset.availableCharsets();
Set<Map.Entry<String,Charset>> set=mycharset.entrySet();
for(Map.Entry<String,Charset> entry:set){
System.out.println(entry.getKey()+" = "+entry.getValue());
}
二 编解码
//一个中文俩字节,一个英文一字节
---编码: 字符串--》字节数组
---解码:字节数组--》字符串
void test3() throws CharacterCodingException {
//获取编码器
//编码器.encode(aCharBuffer);会返回一个ByteBuffer
Charset charset=Charset.forName("GBK");
CharsetEncoder encoder=charset.newEncoder();
//获取解码器
//解码器.decode(aByteBuffer);会返回一个CharBuffer
Charset charset1=Charset.forName("GBK");
CharsetDecoder decoder=charset1.newDecoder();
//创建CharBuffer,写入数据
CharBuffer cb1=CharBuffer.allocate(1024);
cb1.put("你好啊boy!");
cb1.flip();
//使用编码器将CharBuffer转换为ByteBuffer
ByteBuffer bb=encoder.encode(cb1);
// bb.flip();
for(int i=0;i<bb.limit();i++){
System.out.println(bb.limit()+" - "+bb.get());
}
bb.flip();
//解码
CharBuffer deBuffer=decoder.decode(bb);
System.out.println(deBuffer.toString());
}
来源:CSDN
作者:heytyrell
链接:https://blog.csdn.net/heytyrell/article/details/104233296