字符编码

来源:互联网 发布:矩阵的奇异值分解方法 编辑:程序博客网 时间:2024/06/09 15:47

△字符是如何存放的?
存放的只是表示字符的内码
内码是指计算机汉字系统中使用的二进制字符编码

△字符是如何在计算机屏幕展现的
字符的展现离不开字形库(字体)
字形库存放的字符字形以及内码与字形的映射表
一般有点阵字形和矢量字形(TTF字体全是矢量字形,FON文件存放的是点阵字型16*16或24*24)

△ASCII码
采用一个字节的内码表示。00000000到01111111,33个控制码,一个空格码 ,94个形象码。
无法表达英镑符号(£)和拉丁语字母表重音符号等。

△GB2312编码规则
于1980年发布的《信息交换用汉字编码字符集 基本集》,标准号为GB 2312-1980,因其使用非常普遍,也常被通称为国标码。

△GB2312字符在计算机中存储是以其区位码为基础的,区码和位码的取值范围都是在1-94之间,以两个字节存储,但是西文的存储发生冲突。存储时区位码的每个字节分别加上A0H(160)的方法转换为机内码。

△1995年提出GBK标准,对 GB 2312 的完全兼容,并改进。

△GB 18030 全称:国家标准GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现时最新的内码字集。与UTF-8相同,采用多字节编码,每个字可以由1个、2个或4个字节组成

△Unicode码则是由多语言软件制造商组成的统一码联盟制定。

△Unicode只是一个字符集,UTF-8、UTF-16、UTF-32是三种主要的编码方式。
UTF-8编码文件中,BOM(字节序标记)以EF BB BF开头,UTF-16以FE FF开头。UTF8不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式

Unicode与UTF-8的关系
△首字节前置1的数目代表正确解析所需要的字节数,剩余字节的高2位始终是10。
这里写图片描述

△查看Windows操作系统当前字符集
在Windows平台下,进入DOS窗口,输入:chcp,可以得到操作系统的代码页信息。936代表GBK格式
查看Linux操作系统当前字符集,使用locale命令

△Big Endian(大端)高字节在前,低字节在后
Little Endian(小端)低字节在前,高字节在后