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