这次记录的关于显示的部分的笔记如与标准(本人学的是Win程序设计第五版)有偏差,或哪里有不妥,欢迎大家给予斧正!
谈到显示,不得不说说ANSI和Unicode
ANSI是一个标准,这个标准说实话每个国家的字符所占大小都是不一的,有的是一个字,有的是一个字节,比如,中文的GBK标准就是占了一个字的,但是这个标准的不变之处是0x0~0x7F这127个字符,后面的则由不同地域的要求来定,如果是这样子的话就会造成每个地方的每个编码标标准都有差异,一个系统要同时兼顾这么多的标准虽然有可行的管理方法,但是还是会出先不兼容的情况,所以就出现了Unicode,Unicode有两个标准和3个编码方案,两个标准是UCS-2和UCS-4
UCS-4的Unicode大小大概在0到|0x7F|FF|FF|FF|
其中7F个组,FF个面,FF行每行有FF个码位
但是由于Unicode计划只是用第0组,前17个面,所以现在的Unicode是从0到0X10FFFF的
只用0面的范围时(即BMP)就只是0到FFFF了,此时就变成了两字节的UCS-2
3个方分别是UTF-8,UTF-16-UTF-32这三种编码方式可以在百度百科里面看到,大概如下:
Unicode编码(十六进制) UTF-8 字节流(二进制)
000000-00007F || 0xxxxxxx
000080-0007FF || 110xxxxx 10xxxxxx
000800-00FFFF || 1110xxxx 10xxxxxx 10xxxxxx
010000-10FFFF || 11110xxx10xxxxxx10xxxxxx10xxxxxx
UTF-1