ascii、unicode、utf-8、gbk编码

一、字符集:

  • ascii是一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC 646
  • ISO-8859-1 通常叫 做Latin-1,向下兼容ASCII,此字符集支持部分于欧洲使用的语言
  • GB2312/GBK 这就是汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的。
  • UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
  • unicode 万国码

二、Unicode 与 UTF-8 之间的简单关系:
UTF-8是一种Unicode编码格式,主要作用于对Unicode码的数据进行转换,转换后方便进行存储和网络传输

三、python3中字节串和字符串之间的关系
字节串(二进制数据,bytes)
字符串(Unicode码数据,两个字节作为一个字)

四、python3中编码
二进制–>转换–>字符串 需要解码 decode
字符串–>转换–>二进制 需要编码 encode

python3 内存中使用的字符串全部是 unicode 码,但是网络传输的数据或者从磁盘读取的数据是把 unicode 码转换过的数据,通常情况下可能是 utf-8 格式的数据,所以如果从网络中读取或者磁盘中读取其实就是把 utf-8 格式的数据解码成 unicode 码数据,相反如果想把内存中 unicode 码数据存储到磁盘或者网络中需要对 unicode 码进行编码,通常可以采用 utf-8 的形式进行编码

python3解释器自带utf-8编码器,python2不自带,需要手动设置:#coding=utf-8

发布了59 篇原创文章 · 获赞 22 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Albert_Ejiestein/article/details/90138140