计算机为什么用0和1两个符号对信息进行编码?_常用计算机编码汇总(乱码问题根源解答)...

f879c00e1baf69ecb8a46c9afe77c49c.gif点击上方“IT酱油瓶”带你去看小星星 cc3efc23fe6ce802cb1fee6a1f416ce2.png

公众号:IT酱油瓶

作者:网工紫电

一个IT行业技术创业者

81e9682704162d34399b15c3714b3e3f.png

在工作中总会不经意间遇到乱码问题,这个时候我通常都会去找文档改编码类型,或者相同的文件更换软件打开,计算机编码方式这方面的内容也在用到中学习然后又忘记,然后又遇到查资料后来又忘记。。。。如此反复,那今天就汇总一下,在遇到就直接来这里找吧。

我们存储在计算机中的数据,计算机在处理和存储过程中都是用0和1表示,而我们常用的数字、字母、文字,存储在计算机中都是0和1,所以这个时候就需要用不同数量的0和1的组合用来表示我们人能够识别的各类字符。计算机的存储单位是位,一个位只能表示一个0或1,我们通常用8位为一个字节。

编码的种类有ASCII编码、GB2312、GBK、GB18030、  Unicode、 UTF-8 等等

 01   ASCII编码 

百度百科里是这么讲的“在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示  。”

ASCII编码就是用1个字节来存储字符,计算机最初是美国人发明的,他们的符号不多,所以还将8个0和1序列中的第一位固定为0,ASCII只能表示127个字符。

  02    GB2312 /GBK/GB18030  

 GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施,是中国国家标准的简体中文字符集。它是用双字节表示的,两个字节中前面的字节为第一字节,后面的字节为第二字节。习惯上称第一字节为“高字节” ,而称第二字节为“低字节”。“高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。这种编码方式支持7000多个汉字,它所收录的汉字已经覆盖中国大陆99.75%的使用频率,基本可以满足汉字计算机的需要。

由于GB2312只能表示7000多个汉字,无法满足我大中华的所有汉字,所以在此基础上我们有对其扩展出了GBK,GBK可以支持到2万多的汉字(包括繁体字)和符号,后来又扩展于是有了GB18030 ,可以支持少数民族的文字及符号。

全世界有上百种语言,每个国家都制定了自己的编码字符集,统称为MBCS,全称:Muilti-Bytes Charecter Set,多字节字符集。由于每个国家制定了自己的编码规则字符集,各个国家语言都互不通用,所以国际标准化组织ISO推出了下面的万国码。

  03     Unicode / UTF-8   

Unicode(统一码、万国码、单一码)Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,把高字节全部填为0。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。

Unicode编码解决了编码不能通用的问题,但是却容易浪费内存,尤其是在存储英文的时候,例如一个字符“A”,ASCII编码只需要1个字节就够,但是Unicode编码必须要用2个字节。为了解决这一问题,就有了utf-8编码。utf-8编码把存储英文依旧用一个字节,汉字就3个字节。特别是生僻的编程4-6字节,如果传输大量英文,utf-8作用就很明显了。

所以在出现乱码问题时:文件是用什么编码方式进行编码的,解码的时候就选择同样的解码方式。 0a0d2ebecc36697240d064c033b1baac.png

5556e92a6ae2a1a804b73a35eb2c6f28.png

030892315e61f77d2297ea62773bb531.png

扫码关注我们

daeb0def75a60186d6a356ab9e62e25d.gif今天因为你的分享,让我元气满满!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值