Java字符编码根本原理 http://lavasoft.blog.51cto.com/62575/273608/
java的源文件:GBK,UTF-8,GB18030等
java的Class文件:Unicode(实际上是utf-16)
jvm内存中:Unicode,从外部文件,数据库或者网络读取到的字符串可能是非Unicode的,所以需要转化。互转的时候,要能够兼容,否则会出现乱码。
转化的方法:getBytes(String charsetName) String(byte[] bytes, String charsetName)
String.getBytes("XXX")时发生了什么 http://yueyemaitian.iteye.com/blog/468668
这个解释了下getBytes(String charsetName)和String(byte[] bytes, String charsetName)
编码字符集与Java -Java World乱码问题根源之所在 http://www.blogjava.net/ramon/archive/2006/09/24/71505.html
(精)字符集GBK和UTF8的区别说明 http://blog.itpub.net/55022/viewspace-713901
iso8859-1,单字节编码。
GB2312,双字节编码,只能编码简体字,兼容iso8859-1。
GBK,双字节编码,支持简体和繁体,兼容GB2312。
GB18030,变长编码,收录了所有Unicode3.1中的字符,包括中国少数民族字符,GBK不支持的韩文字符等等,也可以说是世界大多民族的文字符号都被收录在内。 兼容GBK。
GBK,GB2312以及Unicode都既是字符集,也是编码方式,而UTF-8只是编码方式,并不是字符集
GBK编码中英文字符只占一个字节