看不了链接的请使用科学上网方式
基本上看wiki就能对编码unicode编码了解得差不多了(wiki质量甩掉百度百好几条街)
计算机内存用的都是unicode编码,具体实现大都为UTF-16或UTF-8
内存里一般都是UTF-16实现方式。
传输和存储采用的是UTF-8。
UTF-16:
最开始unicode只包含每个国家基本常用的字符。不超过65536个字符,所以用的是2字节定长表示,这个标准也叫UCS-2
但是这样肯定不行啊,很多生僻字总有用的时候吧,所有后面增加了很多字符,使用UTF-16标准,UTF-16是UCS-2的父集。
UTF-16以两个字节为一个单元,超过两个字节的就用四个字节表示。
java的字符存储一个char对应的就是一个UTF-16单元(2字节)
大多字符都是一个char表示, U+211DB就是两个char
UTF-8:
只是为了节约流量和存储空间,采用变长的方式编码unicode字符集