Calvin's Tech Space

成于坚忍,毁于浮躁

   :: 首页 :: 联系 :: 聚合  :: 管理

计算机只认识01数字,要转换成可供阅读的字符,需要对底层的01串按一定规则进行解析,这个规则就是各种编码,如ASCII,UTF-8等等。

01串----解码(decode)----->字符
字符----编码(encode)----->01串
用什么样的编码方式存储,就得用相应的解码方式解码才能不出现乱码。

示例:

 1public class Convert {
 2    public static void main(String args[]) {
 3        System.out.println(Charset.availableCharsets());
 4        Charset asciiCharset = Charset.forName("US-ASCII");
 5        CharsetDecoder decoder = asciiCharset.newDecoder();
 6        byte help[] = 72101108112 };
 7        ByteBuffer asciiBytes = ByteBuffer.wrap(help);
 8        CharBuffer helpChars = null;
 9        try {
10            helpChars = decoder.decode(asciiBytes);
11        }
 catch (CharacterCodingException e) {
12            System.err.println("Error decoding");
13            System.exit(-1);
14        }

15        System.out.println(helpChars);
16        Charset utfCharset = Charset.forName("UTF-16LE");
17        CharsetEncoder encoder = utfCharset.newEncoder();
18        ByteBuffer utfBytes = null;
19        try {
20            utfBytes = encoder.encode(helpChars);
21        }
 catch (CharacterCodingException e) {
22            System.err.println("Error encoding");
23            System.exit(-1);
24        }

25        byte newHelp[] = utfBytes.array();
26        for (int i = 0, n = newHelp.length; i < n; i++{
27            System.out.println(i + " :" + newHelp[i]);
28        }

29    }

30}

31

 

  • "" Character sets " " (developerWorks,2002年10月)专门讨论字符集(特别是转换和编码模式)。

  • posted on 2009-12-22 23:35 calvin 阅读(138) 评论(0)  编辑  收藏

    只有注册用户登录后才能发表评论。


    网站导航: