前言
TouchGFX为了便于兼容所有的字符,采用的是unicode编码,本文将简要介绍这种编码方式
一、什么是Unicode
计算机不能理解人类用于书写的文本,只认识0101的二进制语言,所以人们发明了一种二进制与对应文本对应的规则,这就是字符编码。
最开始计算机只在美国用,老美发明了Ascii编码规则,用8位数据进行表示,把0h-1Fh用来放控制码,把20h-7Fh放各种字符。
之后计算机开始推广到其他国家,很多国家都不是使用的英文,于是他们就把Ascii的80h-FFh这一段拿来放入框线、音标和其它欧洲非英语系的字母,这被称为Ascii扩展字符集。
等到计算机推广到中国的时候,却发现,已经没有空位来放字符了。而且中国光常用汉字就有6000多个,于是抛弃了Ascii扩展字符集,制定了一个新的规则,当字符小于127时还是按Ascii的意思来表达,如果有两个大于127的字符连在一起就有可能是一个汉字了,其中前面的一个字节(高字节)范围是A1h到F7h,后面一个字节(低字节)是A1h到FEh,来表示6763个汉字和682个非汉字图形字符。这种编码方式就叫做GB2312。但是中国还有很多很多汉字,GB2312没办法满足全部的需求,于是后来又推出了GBK跟GB18030。这些编码都是可以向前兼容的。
当时各个国家都有各种的编码标准,出了各种各样的编码方式,想要电脑支持某一种语言,就要装上对应的编码系统。最终各个国家联合起来,发明了一种叫Unicode的编码方式,这种编码也叫做万国码、统一码。使用2个字节来表示字符,囊括了世界上几乎所有的字符。
因为Unicode编码方式每一个都需要2个或更多字节来表示一个字符。本来只使用一个字节的Ascii需要在前面补0,对存储是一种极大的浪费。于是就发明了UTF-8对Unicode再次编码来解决这个问题,用一种可变长度的方式减小了存储的浪费。
二、Unicode中文编码范围
注意:一般只使用基本汉字就可以了。
字符集 | 字数 | Unicode 编码 |
---|---|---|
基本汉字 | 20902字 | 4E00-9FA5 |
基本汉字补充 | 38字 | 9FA6-9FCB |
扩展A | 6582字 | 3400-4DB5 |
扩展B | 42711字 | 20000-2A6D6 |
扩展C | 4149字 | 2A700-2B734 |
扩展D | 222字 | 2B740-2B81D |
康熙部首 | 214字 | 2F00-2FD5 |
部首扩展 | 115字 | 2E80-2EF3 |
兼容汉字 | 477字 | F900-FAD9 |
兼容扩展 | 542字 | 2F800-2FA1D |
PUA(GBK)部件 | 81字 | E815-E86F |
部件扩展 | 452字 | E400-E5E8 |
PUA增补 | 207字 | E600-E6CF |
汉字笔画 | 36字 | 31C0-31E3 |
汉字结构 | 12字 | 2FF0-2FFB |
汉语注音 | 22字 | 3105-3120 | </