字符集,编码、显码和存码,ANSI,GB2312,GBK,Unicode,UTF-8名词解释

ANSI是美国国家标准协会,系统预设的标准文字储存格式。

简体中文编码GB2312,实际上它是ANSI的一个代码页936

一种代码页就是一种字符集。

例如代码页936(Codepage 936)是Microsoft的简体中文字符集标准,是东亚语文的四种双字节字符集(DBCS)之一。其最初版本和GB 2312一模一样,但在Windows 95时扩展成GBK。现时中国大陆强制要求所有软件皆要支持GB 18030(Microsoft称之为代码页54936)。

根据微软资料,GBK(汉字内码扩展规范)是对GB2312-80的扩展,也就是CP936字码表(Code Page 936)的扩展(之前CP936和GB 2312-80一模一样),最早实现于Windows 95简体中文版。虽然GBK收录GB 13000.1-93的全部字符,但GBK也是一种编码方式并向下兼容GB2312;而GB 13000.1-93等同于Unicode 1.1是一种字符集,它的几种编码方式如UTF8、UTF16LE等,与GBK完全不兼容。

UTF-8是一种通用的字符集编码格式,这是为传输而设计的编码,2进制,以8位为一个单元对Unicode进行编码。

在UTF-8里,英文字符的编码仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理程序可以对UTF-8编码进行处理。”

GBK、GB2312是ANSI字符集的扩展字符集,UTF-8是Unicode字符集的一种编码方案,在编码层面,它们对ASCII字符的编码是一样的,但是对中文字符的编码就不一样了、不兼容了!

Unicode狭义来说只是一个字符集,而UTF-8是其一种编码规则(编码方式),Unicode有多种编码方式,还有ucs-2(utf-16)等。

字符集在计算机系统里的实现技术,分为存码技术和显码技术,编码规则属于存码技术,字体属于显码技术。一个字符可以有多种编码方式,例如GBK、UTF-8等,编码方式告诉计算机如何用二进制编码(此处“编码”是动词)和存储一个字符;一个字符也可以有多种显示方式,例如使用不同的字体,将在屏幕上显示不同的字形。一种字体就是一种显码。

参考

https://blog.csdn.net/l1028386804/article/details/46583279

https://zh.wikipedia.org/wiki/%E4%BB%A3%E7%A2%BC%E9%A0%81936

https://zh.wikipedia.org/wiki/%E6%B1%89%E5%AD%97%E5%86%85%E7%A0%81%E6%89%A9%E5%B1%95%E8%A7%84%E8%8C%83

编译原理名词解释

元字符

关于元字符,类似元数据(meta data)的概念,元数据是用来描述数据的数据,例如一篇文章的关键字、一首歌的长度等。元字符是描述其他字符的字符,主要用在正则表达式中,例如在正则表达式中’.’号就是其中一个元字符,’.’号代表任意字符,一个’.’号匹配任意一个字符。在不同的正则表达式实现方式中,使用的元字符可能会有所不同。