你知道“UTF-8”是什么吗?

你知道“UTF-8”是什么吗?

在做翻译的时候,可能会遇到文字显示乱码,需要使用特定的编码方式将文件另存。在Windows操作系统上,我们比较常见的操作是将文件使用“UTF-8”编码另存,如上图。

但大家知道何为“UTF-8”吗?

你知道“UTF-8”是什么吗?

以下内容是我在《译者编程入门指南》一书中新增的内容,供大家参考:

要想让计算机显示各种各样的文字,我们需要将所有文字用“字符集”(Character Set)来组织管理。计算机中设置字符集的目标是对人类语言的所有文字进行编码,使之可以存储在计算机中,让计算机通过文字的编码来识别文字。

计算机最早在欧美国家广泛应用,当时主要用于处理英文字母,所以那时的计算机应当能正常显示英语,为此美国国家标准学会(American National Standard Institute,ANSI)在1967年发布了美国信息交换标准代码(AmericanStandard Code for Information Interchange,ASCII),一共规定了128个字符的编码方式,比如数字“0”就有多种编码方式,如:00110000(二进制)、48(十进制)、30(十六进制)。许多初次接触这些知识的同学都会觉得匪夷所思,难道计算机还不认识“0”吗,为什么一个简简单单的“0”要搞出这么多种编码方式。其实这些表示方法都是为了计算机能够更好得处理字符,而非让人去记住这些复杂的编码。

英语字母和标点符号少,128个字符就够用了,但是像汉语这种有成千上万个汉字的语言,128个字符就不够用了。中国国家标准总局在1981年颁布实施了中华人民共和国国家标准《信息交换用汉字编码字符集·基本集》,编号为“GB2312-80”,我们常称之为“GB 2312编码”,这个字符集中汉字共收录了6763个,同时收录了包括一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母等在内的682个字符,共7445个图形字符。

世界上国家众多、语言众多、文字众多,每个国家都有自己的字符编码方式,当一台计算机上众多编码方式混在一起的时候,计算机就糊涂了,所以计算机需要一个全世界统一使用的字符集,涵盖人类使用的全部字符,并赋予每个字符唯一的编码。

1987年,三位分别在美国施乐公司(Xerox)和苹果公司(Apple)工作的工程师Joe Becker、Lee Collins和Mark Davis创建了一家非营利组织“统一码联盟”(Unicode Consortium),该联盟于1991年发布“统一码标准”(Unicode Standard)。目前该标准的最新版是2018年6月发布的11.0.0版,共收录了137374个字符及其对应的编码。

这家初创组织发布了这套希望全球共用的字符集后,起初并未掀起太大的波澜,因为不同国家的人不知道如何使用这套字符集,大家依然使用属于自己语言的字符集来存储电子文档。直到一个名为“统一码转换格式”(Unicode Transfermation Format,UTF)的标准出现,这是一种能让统一码标准在计算机中得以实际应用的字符编码方式(Encoding),目前最常用的一种称为“UTF-8”(亦可写作“utf-8”)。如今世界上92.9%的网站都在使用“UTF-8”来对网站中的字符进行编码。

通过上面这段文字的介绍,大家应该能分清楚ANSI、Unicode、UTF-8的关系了吧?但字符编码知识远非这么简单,仍有许多与我们每日工作息息相关的知识我还没有仔细介绍,比如:

“UTF-8”中的“8”什么意思?第8个版本吗?

GB2312应该是挺老的标准吧,GBK和GB18030跟它有啥关系?

Unicode不是国家标准化组织(ISO)发布的标准吗?

......

如果大家对此有浓厚兴趣,可以自己再去查查,我以后有时间再和大家分享!


分享到:


相關文章: