jdk1.4æä¾äºCharsetç±»æ¥å¤çåèåºååå符åºåï¼å符串ï¼ç转æ¢å ³ç³»ï¼ä½¿ç¨Charsetç±»è½å¤å建ç¼ç å¨å解ç å¨ã
é¦å ï¼è·åCharset对象éè¦æä¾å符éçå称ï¼å¦GBKãæ们éè¿Charsetç±»æå°JDKæ¯æçææå符éã
// è·åJavaæ¯æçå
¨é¨å符é
SortedMap<String,Charset> map = Charset.availableCharsets();
for (String alias : map.keySet())
{
// è¾åºå符éçå«å
System.out.println(alias);
}
æ¥ä¸æ¥ä½¿ç¨ç¼ç å¨å°CharBufferä¸çå符åºå转æ¢ä¸ºåèåºåByteBufferã
CharBufferåByteBufferæ¯java NIOä¸çIOæä½ç±»ã
// å建ç®ä½ä¸æ对åºçCharset
Charset charset = Charset.forName("GBK");
// è·åcharset对象对åºçç¼ç å¨
CharsetEncoder charsetEncoder = charset.newEncoder();
// å建ä¸ä¸ªCharBuffer对象
CharBuffer charBuffer = CharBuffer.allocate(20);
charBuffer.put("CSDN-ä¸ä¸ITææ¯ç¤¾åº");
charBuffer.flip();
// å°CharBufferä¸çå符åºå转æ¢æåèåºå
ByteBuffer byteBuffer = charsetEncoder.encode(charBuffer);
// 循ç¯è®¿é®ByteBufferä¸çæ¯ä¸ªåè
for (int i = 0; i < byteBuffer.limit(); i++)
{
System.out.print(byteBuffer.get(i) + " ");
}
ç¶å使ç¨è§£ç å¨å°ByteBufferä¸çåèåºå转æ¢ä¸ºå符åºåCharBufferï¼å符串ï¼ã
// å建ç®ä½ä¸æ对åºçCharset
Charset charset = Charset.forName("GBK");
// è·åcharset对象对åºçç¼ç å¨
CharsetDecoder charsetDecoder = charset.newDecoder();
// å建ä¸ä¸ªByteBuffer对象
ByteBuffer byteBuffer = ByteBuffer.allocate(50);
byteBuffer.put("CSDN-ä¸ä¸ITææ¯ç¤¾åº".getBytes("GBK"));
byteBuffer.flip();
// å°ByteBufferçæ°æ®è§£ç æå符åºå
System.out.println(charsetDecoder.decode(byteBuffer));
Â