各大技术社区常年充斥着关于字符集支持、乱码的问题。Cache’/Ensemble/HealthConnect/IRIS的用户也经常遇到这类问题。为何文字乱码在信息化发展这么久后还会困扰我们?因为字符集、多语言实在有点复杂。
我计划写三章:第一章花点时间回顾一下多语言字符集的简史,第二章介绍一下各种技术对于字符集和字符编码的使用声明,最后一章会介绍常见的ISC技术和工具的乱码、尤其是中文乱码的现象和解决办法。
第一章 多语言字符集和相关标准简史
如果您已经了解多语言字符集和相关标准,请绕道此章。
相关概念
要理解多语言字符集,先了解一下相关概念。
- 字符(char):每个语言都有一系列特有的字符,例如英文26个字母、加减乘除等各种符号、中文汉字。
- 字形(glyphs):同样一个字符,有不同的写法、不同的风格和设计,就是不同的字形。
- 字体(font):字体算是计算机术语,是针对字符集的电子化的字符展现形式。
- 字符集(character set):通常是按语言归集的一个字符集合, 用于记录每个字符和对应的代码。
- 字符编码(encoding):针对字符集的特定编码格式。
字符集发展简史
电子字符集的发展历史很长,再加上不同语言字符集的复杂性,所以现在我们面对的字符集和字符编码是比较复杂的,而且相同字符集还有很多别名,在不同环境下看到的别名还不一样。下面仅介绍我们常见的字符集的发展历史,字符集全景远比这复杂。
1.1 单字节编码
1.1.1 ASCII(American Standard Code for Information Interchange):
它最初是Bell在1960年代基于电报码提出的,用于电传打印机。后成为ANSI标准(A