前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么计算机会出现乱码—二进制(二)

为什么计算机会出现乱码—二进制(二)

作者头像
硬核编程
发布2019-08-19 21:41:11
8000
发布2019-08-19 21:41:11
举报

与其用特殊方式来表示字母,计算机可以用数字表示字母,最直接的方法是给字母编号:A是1,B是2,C是3,以此类。著名英国作家 弗朗西斯·培根(Francis Bacon),曾用 5位序列来编码英文的 26 个字母。在十六世纪传递机密信件,五位(bit)可以存 32 个可能值(2^5)。 这对26个字母够了,但不能表示 标点符号,数字和大小写字母。

ASCII

ASCII,美国信息交换标准代码,发明于 1963 年,ASCII 是 7 位代码,足够存 128 个不同值,范围扩大之后,可以表示大写字母,小写字母,数字 0 到 9, @ 这样的符号, 以及标点符号。举例,小写字母 a 用数字 97 表示,大写字母 A 是 65。: 是58 ) 是41。ASCII 甚至有特殊命令符号,比如换行符,用来告诉计算机换行。在老计算机系统中,如果没换行符,文字会超出屏幕,因为 ASCII 是个很早的标准,所以它被广泛使用。

让不同公司制作的计算机,能互相交换数据,这种通用交换信息的能力叫 "互用性",但有个限制:它是为英语设计的幸运的是,一个字节有8位,而不是7位,128 到 255 的字符渐渐变得常用。这些字符以前是空的,是给各个国家自己 "保留使用的"。在美国,这些额外的数字主要用于编码附加符号,比如数学符号,图形元素和常用的重音字符。另一方面,虽然拉丁字符被普遍使用,在俄罗斯,他们用这些额外的字符表示西里尔字符,而希腊电脑用希腊字母等等。

乱码

这些保留下来给每个国家自己安排的空位, 对大部分国家都够用,问题是,如果在 土耳其 电脑上打开 拉脱维亚语 写的电子邮件,会显示乱码,随着计算机在亚洲兴起,这种做法彻底失效了。中文和日文这样的语言有数千个字符,根本没办法用 8 位来表示所有字符!为了解决这个问题,每个国家都发明了多字节编码方案,但不相互兼容。

Unicode

日本人总是碰到编码问题,以至于专门有词来称呼:"mojibake" 意思是 乱码,所以 Unicode 诞生了 - 统一所有编码的标准设计于 1992 年,解决了不同国家不同标准的问题,Unicode 用一个统一编码方案。最常见的 Unicode 是 16 位的,有超过一百万个位置 -对所有语言的每个字符都够了。100 多种字母表加起来占了 12 万个位置。还有位置放数学符号,甚至 Emoji。就像 ASCII 用二进制来表示字母一样。

其他格式 - 比如 MP3 或 GIF ,用二进制编码声音/颜色,表示照片,电影,音乐。重要的是,这些标准归根到底是一长串位短信, YouTube 视频,互联网上的每个网页甚至操作系统,只不过是一长串 1 和 0。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员成长充电站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档