汇总:
1.字符类型采用的是UTF-16编码方式对Unicode编码表进行表示。其中一个char类型固定2Bytes(16bits)。
代码点 (code point)------>unicode值
代码单元( code unit): 规定16bits的存储容量就是一个代码单元
2.一个中文的长度?跟操作系统相关 。
当前的OS默认支持的字符集使用的是UTF-8,则是3个字节。
如果是gb2312/gbk,则2个字节。
如果使用unicode/UTF-16则4个字节(开头的两个字节是一个mark)。
3.《Java字符串与字符集的基本概念 》TODO
http://blog.csdn.net/ausnow/article/details/5865388
Java判断中文及中文字符转unicode
http://orgcent.com/java-check-chinese-unicode/
http://liqipan.iteye.com/blog/1564081
FAQ:
1、char型变量中能不能存贮一个中文汉字?为什么?
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16位,所以放一个中文是没问题的,有些不在unicode范围内的就不支持了。
2.char c = '陈'; 是可以的,但 char c = 'AB' 就不对了?。
char类型只能存放一个字符,一个字符可以占两个字节。