文字セット
文字セットがサポートしているかを見
//获取字符集
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());
}
二つのコーデック
// 2バイト中国語、英語の1つのバイト
---エンコーディング:文字列 - 「バイト配列
---デコード:バイト配列 - 「文字列
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());
}