成于坚忍,毁于浮躁
计算机只认识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[] = { 72, 101, 108, 112 }; 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月)专门讨论字符集(特别是转换和编码模式)。
计算机只认识01数字,要转换成可供阅读的字符,需要对底层的01串按一定规则进行解析,这个规则就是各种编码,如ASCII,UTF-8等等。 01串----解码(decode)----->字符 字符----编码(encode)----->01串 用什么样的编码方式存储,就得用相应的解码方式解码才能不出现乱码。 示例:
Copyright @ calvin Powered by: .Text and ASP.NET Theme by: .NET Monster