美文网首页
一文秒懂编码那些事儿

一文秒懂编码那些事儿

作者: Newzer | 来源:发表于2022-06-06 19:23 被阅读0次

编码有两个大类:
非Unicode编码:ASCII、SO 8859-1、Windows-1252、GB2312、GBK、GB18030和Big5
Unicode编码:世界上所有的字符都统一分配了一个数字编号,大概有110多万
ASCII 只考虑了美国最初的需求,128个字符,用一个字节(8位)来表示,将最高位设置为0,剩下的7位正好可以表示128个ASCII,ASCII 规定了0~127的每个数字代表了的字符

ASCII码对于美国来说是够用了,但是对于其他国家不够用,于是各个国家的计算机厂商就发明了各种各样的编码方式来表示自己国家的字符,为了保持与ASCII码的兼容性,同时由于ASCII 将最高位置为0,其他的计算机厂商就将自己国家的编码的最高位设置为1。在这些扩展的编码中,在西欧国家流行的是ISO8859-1和Windows-1252,在中国是GB2312、GBK、GB18030和Big5

Windows-1252和ISO 8859-1基本是一样的,只有部分不一样,加入了欧元符号以及一些其他的常用的字符,可以认为ISO 8859-1已经被Windows-1252取代(都是一个字节来表示一个字符)

GB2312是中文的第一个标准,规定了简体中文常见字符,包括约7k个汉字和一些罕用词和繁体字,固定使用两个字节来表示一个汉字,最高位都是1,如果是0则认为是ASCII字符

GBK 向下兼容GB2312,GBK增加了14k多个汉字,所以总共有21k 汉字,包括繁体字,也同样是用固定的两个字节来表示一个汉字的

GB18030 向下兼容了GBK,增加了55k 多个汉字,所以总共有76k汉字,包括了很多少数民族字符以及中日韩统一字符,由于两个字节最多表示 2的16次方=65535 个字符,所以两个字节已经不能完全表示GB18030的所有字符,因此GB18030 使用变长编码,有的字符是两个字节,有的字符是4个字节

Big5 是针对繁体中文的,广泛用于我国台湾地区和我国香港特别行政区等地,Big5包括13k多个繁体字,和GB2312类似,以固定两个字节来表示一个字符

如果文本里的字符都是ASCII码字符,那么使用上面的任何一种编码都是一样的,因为ASCII是基础,所有的编码都兼容ASCII,如果最高位是1,除了GB2312、GBK、GB180相互兼容以外,其他编码都是不兼容的,即使Big5和GB18030都能表示繁体,表示方式也是不一样的
非Unicode 编码不仅规定了能表示哪些字符,也规定了每个字符对应的二进制是什么

【乱码】即指定的两种编码方式不兼容,编码转换时出现解析错误

非 Unicode 编码计算机厂商都只考虑了自己国家甚至自己厂商的字符和编码,导致出现了太多的编码且相互不兼容
Unicode 就出现了,Unicode 给世界上所有的字符都分配了一个唯一的数字编号,这个数字编号一般写成16进制,在前面加U+,但它并没有规定对应的二进制是什么

编号如何对应二进制表示呢?
主要就有UTF-32、UTF-16、UTF-8

UTF-32:用固定四个字节表示,比较浪费空间
UTF-16:用变长字节表示,常用字节用两个字节表示,增补字节用四个字节表示,也就是任何一个字符都是需要至少两个字节表示的,对于美国和西欧国家而言(他们的字符都可以用一个字符表示完)还是很浪费的
UTF-8:用变长字节表示,每个字节使用的字节书和其Unicode编号的大小有关,编号小的字符使用的字节就少,使用字节数有1~4个不等,UTF-8是兼容ASCII码,对于大部分中文而言,一个中文字符需要用三个字节来表示

小知识:
如何由Unicode编号来对应二进制?
1.首先将编号看作整数,并转化为相应的二进制
2.将二进制从右到左一次填入对应的二进制格式X中,填完后如果对应的二进制格式还有没填的空,就置为0

相关文章

  • 一文秒懂编码那些事儿

    编码有两个大类:非Unicode编码:ASCII、SO 8859-1、Windows-1252、GB2312、GB...

  • 编码那些事儿

    常见编码 文本编码 常见的文本编码方法有:ANSI(多字节)的ASCII编码、GB2312、GBK、GB18030...

  • 关于编码那些事儿

    1. 字符串的编码形式 字符串的编码最一开始是ascii,使用8位二进制表示,因为英文就是编码的全部。后来其他国家...

  • 字符编码那些事儿

    每个文本编辑器都有默认的编码方式(比如 UTF-8 编码),当我们保存文档的时候,可以选择编码方式,如果没有特意选...

  • 字符编码那些事儿

    一直被字符的编码搞得头晕脑胀,经常出现乱码却又无可奈何,最近看到两篇讲字符编码的文章,这才有点头绪,于是决定把它写...

  • 编码的那些事儿

    其实不管是用哪种编码,本质上保存的都是二进制。一些基本概念与易错点: 不同的编码,占用的字节数是不一样的。字符在不...

  • H.264编码

    H.264编码 特别备注 本系列非原创,文章原文摘自【秒懂音视频开发】23_H.264编码[https://www...

  • 如何开始一个新的领域的学习

    1.素材收集 概念: 理解成本,秒懂力 心情不好的时候为啥还愿意看明朝那些事儿,因为通俗易懂有趣,不用花太多精力便...

  • 北京婚姻律师王丽:一文秒懂“夫妻共同债务”的那些事儿

    北京市兰台律师事务所 王丽 近日,兰台律师代理的(2016)京民再73号民间借贷纠纷再审一案,以北京市高院判决被代...

  • 一文秒懂FRM考试!

    FRM(Financial Risk Manager)是全球金融风险管理领域顶级的权威国际资格认证,由美国“全球风...

网友评论

      本文标题:一文秒懂编码那些事儿

      本文链接:https://www.haomeiwen.com/subject/voijmrtx.html