Unicode

Unicode仅仅只是一个字符集,规定了符合对应的二进制代码,至于这个二进制代码如何存储则没有任何规定。

它的想法很简单,就是为每个字符规定一个用来表示该字符的数字,仅此而已。

1. Unicode编码规范

Unicode编码标准,可表示目前全世界所有语言的所有字符。同时兼容ASCII编码。

UCS 只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的 UCS 编码是 6C49,我可以用 4 个
ascii 数字来传输、保存这个编码;也可以用 utf-8 编码 3 个连续的字节 E6 B1 89 来表示它。关键在于通信双方都要认可。UTF-8、UTF-7、UTF-16 都是被广泛接受的方案。UTF 是 “UCS Transformation Format” 的缩写。

UCS2 2的16次方 65535. UCS4

2. utf-8

问题: 计算机不知道 是 2 个字节表示的是一个字符,还是1个字节表示一个字符.

3. java中string 占用几个字节

string采用灵活的 方式存储. 一个英文字符占1个字节, 而中文字符根据编码的不同所占字节数也不同。在UTF-8编码下,一个中文字符占3个字节;而使用GBK编码时一个中文字符占2个字节。