计算机如何将一堆 0 和 1 显示成人类可读文字?看完秒懂
编码初始印象
我们在电脑上常见的字符,其本质都是由一连串的0和1所构成。这就像我们过去写信,必须遵循大家都能理解的文字规则一样,电脑处理字符转换也需要一套既定的映射规则。比如ASCII,它是最基础的,操作简便,应用广泛。
计算机刚开始普及的时候,ASCII 编码就已经出现了。这个编码最初是为英语量身打造的,仅包含256个字符,只需一个字节就能轻松存储。在当时的英语使用环境中,无论是办公还是记录信息,都非常适用。许多文档和代码都采用了这种编码方式,极大地促进了计算机技术的进步。
编码扩展难题
随着计算机在全球范围内的广泛应用,非英语国家的用户也开始广泛采用。电脑上需要展示各种语言,这就引发了问题。各个国家的语言文字种类繁多,原有的ASCII码256个字符根本无法满足需求,因此出现了各种扩展字符集。当扩展集的字符数量超过256后,一个字节就无法表示了,不得不使用两个字节来表示一个字符。
在亚洲众多国家,广泛使用汉字、韩文、日文等字符。若仅用一个字节存储,显然不够。若按数字顺序排列,系统在读取时难以区分单个字符还是两个字符,从而产生乱码。这种情况给跨语言交流及计算机信息处理带来了极大的困难。
编码规则确定
要解决这个问题,必须确立编码标准。确立规范后,系统便能明确每个编码的具体意义。比如,规定0x81不是单独的字节构成字符,系统便会额外读取一个字节,然后根据码表找到相应的字符。
这就如同制定交通法规,若繁忙的街道上缺乏秩序,必定会陷入混乱。一旦确立了编码规范,计算机便能精确地识别和展示各类字符。遵循这些规则,各国语言文字的信息便能在电脑上精确无误地展示和处理。
基本多语言平面
在编码体系里,基本多语言平面(BMP)扮演着重要角色。它包括了从0000到ffff的所有码点,这个范围是我们日常使用中最频繁的。绝大多数我们使用的各种语言的字符都集中在这个平面之中。
在日常生活中,无论是浏览网页还是手机聊天,我们接触到的字符大多源自BMP格式。除了BMP,还有每65536个点构成一个平面,总共有17个这样的平面。但这些平面中存储的字符多是一些不常用的生僻字和特殊符号。
不同编码方式
Unicode编码转换成UTF-8有特定的步骤,那就是将码点划分为四个部分,并使用不同的编码方法。比如,0000到007F这部分对应的是标准ASCII,只用一个字节就能表示;而10000到10FFFF这部分则需要拆分成四份,每份用四个字节来编码。通过这样的编码方式,可以适应各种字符,满足各种使用需求。
UTF-16编码将所有字符固定在16位,这意味着它能表示最多65536个字符,涵盖了BMP区域。尽管UTF-16有其优点,但它存在一个显著的缺点,那就是它不能兼容最初的ASCII编码。因此,在电脑系统中,它对基础ASCII字符的识别并不友好。
html
UTF - 16 细说
UTF-16编码中存在代理对这一特性,这是因为Unicode编码范围超出了FFFF,往上延伸时无法确保每个字符都能用两个字节表示,所以需要按照特定规则转换为四个字节。这样的设计使得UTF-16的编码过程相对复杂,但同时也能够处理更多字符的编码需求。
它虽非常见文件编码,但在 JavaScript 中却至关重要。其字符串在内存中是以 UTF-16 编码形式存在的。对于学习编程,尤其是前端开发,这部分知识不可或缺。掌握了它,才能更有效地处理字符串和展示各类文本信息。你是否对 UTF-16 有更深的理解了?不妨给这篇文章点赞,分享给需要的朋友,并在评论区谈谈你对电脑字符编码的看法,以及在使用过程中是否遇到过编码难题。
作者:小蓝
链接:https://www.lanmiyun.com/content/7977.html
本站部分内容和图片来源网络,不代表本站观点,如有侵权,可联系我方删除。