各种字符集之间的关系
- ISO8859-1
-西欧字符集
- BIG5 -中国台湾的大五码,表示繁体汉字
- GB2312 -大陆使用最早,最广的简体中文字符集
- GBK -GB2312的扩展,可以表示繁体中文
- GB18030 -最新GBK的扩展,可以表示汉字、维吾汉文、藏文等中华名族字符
- Unicode -国际通用字符集
Unicode 正确理解
概要
占用 2 个字节
Unicode 给所有的字符指定了一个数字用来表示该字符。
Unicode 仅仅只是一个字符集,规定了符合对应的二进制代码,至于这个二进制代码如何存储则没有任何规定。它的想法很简单,就是为每个字符规定一个用来表示该字符的数字,仅此而已。
在向磁盘和网络上传送的时候以 UTF-8 编码
- 占1个字节的:一个utf8数字、一个utf8英文字母
- 占2个字节的:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码
- 占3个字节的:基本等同于GBK,含21000多个汉字
- 占4个字节的:中日韩超大字符集里面的汉字,有5万多个
- 少数是汉字每个占用3个字节,多数占用4个字节(俩个字符)
兼容性
向下兼容。比如 GBK 会兼容 GB2312 、ISO8859-1。
乱码产生的原因
编码和解码字符集不一样。