分类:
2008-10-13 16:29:57
看了好几篇分析java汉字编码问题的文章,加上自己的实践,总结几点:
1 Java所有字符在内存中是未编码的unicode。
这一点好像没法验证,JBuilder和Eclipse都无法直接查看某变量的内存信息(对JAVA IDE不太熟)。
譬如: String zw= new String(“中文“);
其内存中应该表现为\u\4E2D \u6587
2 编译为class文件后,使用的是unicode的UTF-8编码(IDE指定的编码)“E4 B8 AD E6 96 87”
3 byte[] bencdoe = zw.getBytes();
getBytes函数群总是对字符串进行某种编码后的结果。无参getBytes()使用操作系统默认字符集,譬如,我们中国人用的win2k一般是GB2312, 或者GBK. 所以上面其结果为“D6 D0 CE C4“。
4 字符串在内存中操作时,不需要任何编码或解码操作。
一旦涉及到输入或输出,就通常需要编解码。
posted on 2005-06-06 21:31 Michael 阅读(969)