系统字符编码概念解释:
计算机,不能直接存储⽂字,存储的是编码。计算机只能处理⼆进制的数据。a -
对于其它数据,⽐如: 0-9、 a-z、 A-Z,这些字符,我们可以定义⼀套规则来表示。
假如: A-110表示, B-111表示等。
ASCII码:00000000 = 0-255 00000001 a 00000010 b
美国发布的,⽤1个字节(8位⼆进制)来表示⼀个字符,共可以表示2^8=256个字符。
美国的国家语⾔是英语,只要能表示0-9、 a-z、 A-Z、特殊符号。
ANSI编码:
每个国家为了显示本国的语⾔,都对ASCII码进⾏了扩展。
⽤2个字节(16位⼆进制)来表示⼀个汉字,共可以表示2^16= 65536个汉字。
中国的ANSI编码是GB2312编码(简体),对6763汉字进⾏编码,含600多特殊字符。另外还有GBK(简体)。
⽇本的ANSI编码是JIS编码。
台湾的ANSI编码是BIG5编码(繁体)
GBK:
对GB2312进⾏了扩展,⽤来显示罕⻅的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码 位。 K的含义就是"扩展"。
Unicode编码(统⼀编码): 4个字节 a - 4字节 4k
⽤4个字节(32位⼆进制)来表示⼀个字符,想法不错,但效率太低。例如,字⺟A⽤ASCII表示的话⼀个字节就够, 可⽤Unicode编码的话,得⽤4个字节表示,造成了空间的极⼤浪费。
A的Unicode编码是:0000 0000 0000 00000000 0000 0100 0000
UTF-8(Unicode Transform Format)编码: 你 11111100000 好 00000011111
根据字符的不同,选择其编码的⻓度。⽐如:⼀个字符A⽤1个字节表示,⼀个汉字⽤2个字节表示。 毫⽆疑问,开发中,都⽤UTF-8编码吧,准没错。
中⽂能够使⽤的字符集两种:
第⼀种: UTF-8
UTF-8是国际通⽤字库,⾥⾯涵盖了所有地球上所有⼈类的语⾔⽂字,⽐如阿拉伯⽂、汉 语、⻦语......
第⼆种: GBK(对GB2312进⾏了扩展)
gb2312 是国标,是中国的字库,⾥⾯仅涵盖了汉字和⼀些常⽤外 ⽂,⽐如⽇⽂⽚假名,和常⻅的符号。 字库规模: UTF-8(字很全) > gb2312(只有汉字)