字符编码问题

什么是字符编码

将字符集(acsii字符集或unicode字符集)“翻译”成字节序列的规则就是字符编码,简称编码。

简单理解成:人与计算机交流,字符"我"人都认识,但是计算机只能认识010101010,通过编码就能进行愉快交流了

ASCII

  • ASCII(American Standard Code for Information Interchange,美国标准信息交换代码),其最多只能用 8 位来表示(一个字节),ASCII码最多只能表示 255 个符号
  • ASCII是一个字符集,也是一种编码方式

Unicode

  • 由于ascii只能表示英文相关字符,各个国家编码不兼容,所以出现了unicode。
  • Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。
  • Unicode 只是一个符号集,它只规定了符号的二进制代码(映射关系),却没有规定这个二进制代码应该如何存储,如何存储就要看编码方式
  • ”unicode编码“  这个词应该是指windows的utf-16

两者区别:ascii是一种编码方式,而unicode不是

关于中文

  • GB2312编码方案于1980年发布,收录汉字6763个,采用双字节编码。
  • GBK编码方案于1995年发布,收录汉字21003个,采用双字节编码。
  • GB18030编码方案于2000年发布第一版,收录汉字27533个;2005年发布第二版,收录汉字70000余个,以及多种少数民族文字。GB18030采用单字节、双字节、四字节分段编码。

UTF-xxx

  • UTF-8 UTF-16 UTF-32,是unicode的编码方式,将unicode字符集映射关系(数字)按UTF-8等编码方式,转换成字节序列(以什么方式存储就看编码方式了)
  • UTF-8是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。

python中的编码

         python2.x→ascii 默认编码

         python3.x→Unicode 默认编码

来源:

知乎:https://www.zhihu.com/question/52346583/answer/977492415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值