前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >各种编码

各种编码

作者头像
青木
发布2018-05-28 15:41:37
6440
发布2018-05-28 15:41:37
举报

常见的和编码相关的几个关键词:

  • ASCII
  • Unicode
  • UTF-6,UTF-16,UTF-32
  • GBK
  • ISO 下面开始一个一个的解释:

ASCII码 计算机中所有的信息都是以二进制的形式存在的. 早先美国人发明了计算机,为了用计算机表示他们美国人可以看懂的信息,就将26个英文字母以及一些常用字符用二进制代码表示. 二进制代码和对应的英语字符的关系被规定为ASCII码. ASCII码一共规定了128个字符的编码. 这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的统一规定为0. 计算机每次读一个字节,解码出具体字符在屏幕上显示出来. ISO编码 欧洲人发现ASCII编码只能表示英语字符,法语\德语中还有很多符号是ASCII编码所不能表示的. 因此欧洲人自己又炮制出来一套编码ISO. ISO编码把ASCII码中字节的最高位也用掉了. 跟ASCII编码一样,计算机每次也只读一个字节,解码具体字符. GBK编码 跟美国人和欧洲人一样,中国人也想用计算机表示我们中国人自己的文字信息. 于是GBK编码油然而生. 由于汉字的数量比较大,一个字节8位是表示不够用的,所以计算机在处理GBK编码的时候分两步: 1.第一位是0,按照ASCII编码来读入一个字节 2.第一位是1,读入两个字节

当然还有日本的shift _JIS编码,韩国的Euc-kr编码.各国有各国字节的编码方式.这样的话,就会出现问题: 如果一篇文章中有好几个国家的语言显示.这篇文章就会乱码,无法阅读. 为了解决这个问题,Unicode编码诞生了.

Unicode编码 Unicode的诞生类似于"秦灭六国,统一货币".当然,Unicode并没有把其他编码给消灭掉,但它几乎收纳了世界上大部分的字符. 这些字符都有唯一的编码,这就解决了多国语言同一页面显示乱码的问题. Unicode编码的编号从0到100多万(3个字节),每一个区间对应一种语言的编码.

Unicode编码虽然解决了乱码的问题,但同时又带来一个新的问题:空间浪费. 比如英语字母明明可以用一个字节来表示,Unicode中却要用3个字节,这是对空间的严重浪费. 为了解决空间浪费的问题,UTF编码就诞生了.

UTF-8,UTF-16-UTF-32 UTF仅仅是编码的解决方案,并不是一种新的编码方式. Unicode只是一个符号集,它规定了符号的二进制代码,但是没有规定这些二进制代码应该如何存储. 所以UTF-8仅仅是Unicode编码的一种具体实现形式. UTF-8采用变长的编码方式,可以用1~4个字节表示一个符号,根据不同的符号而变化字节长度. 所以,UTF-8是节省空间的. 在英文字符比较多的内容中,采用UTF-8编码比较节省空间, 在中文字符比较多的内容中,采用UTF-16比较节省空间,因为汉字至少需要两个字节来表示.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档