ASCII
最开始的编码是 ASCII 编码,占一个字节。 只有8位,最多只能支持256个字符,仅支持英文是可以的。
Unicode
unicode 最大有4个字节 ,支持40多亿个字符,完全满足编码目前的使用。第一个字节表示组,第二个表示平面,后两个字节分别为行和列。
一个平面对应两个字节,可以表示65536 个字符。
现在将各国常用的字,放在第一个平面上。
Java Unicode
Java Unicode 用的就是Unicode规范的第一个平面,是为了节省空间,而且绝大多数情况下使用的字符都在其中。
char类型,对应的是Java Unicode,占两个字节。 所以很多偏僻汉字,char类型是无法声明的。
只要是Java Unicode范围内的字符,就可以声明为变量。 String 语雀 =””; 这样写没有问题,且不用担心变量名的编码格式,其只会使用Unicode 。
UTF-8
-8的意思是最小以8位来编码, 同理-16最小以16位来编码。
UTF-8 是对Unicode的一种封装实现。
UTF-8 出现的目的是为了节省编码空间,如计算机中大多使用的英文,使用Unicode有点浪费。 UTF-8对不同字符编码长度不一样,占1-4个字节。
String
String是支持任何字符的,前提是声明时需定义好使用哪种编码格式,如不指定,则默认使用操作系统的编码格式。