Python 编码

Posted 董昱锦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 编码相关的知识,希望对你有一定的参考价值。

.编码类型:

 

  • ASCII 占1个字节,只支持英文
  • GB2312 占2个字节,支持6700+汉字
  • GBK GB2312的升级版,支持21000+汉字
  • Shift-JIS 日本字符
  • ks_c_5601-1987 韩国编码
  • TIS-620 泰国编码  
  •  Unicode  万国码      
    • 为了解决存储和网络传输的问题,出现了Unicode Transformation Format,学术名UTF,即:对unicode中的进行转换,以便于在存储和网络传输时可以节省空间!

      • UTF-8: 使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
      • UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
      • UTF-32: 使用4个字节表示所有字符

2.Python3 执行过程

     解释器找到代码文件,把代码字符串按文件头定义的编码加载到内存,转成unicode

     把代码字符串按照语法规则进行解释,

     所有的变量字符都会以unicode编码声明

3.解码和编码

UTF-8 --> decode 解码 --> Unicode
Unicode --> encode 编码 --> GBK / UTF-8 ..    #网页爬取的时候,转码s.decode(‘gbk‘, ‘ignore‘).encode(‘utf-8′)
 

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312‘),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312‘),表示将unicode编码的字符串str2转换成gb2312编码。

Python只要出现各种编码问题,无非是哪里的编码设置出错了
4常见编码错误的原因有:

  • Python解释器的默认编码
  • Python源文件文件编码
  • Terminal使用的编码
  • 操作系统的语言设置

 

 


以上是关于Python 编码的主要内容,如果未能解决你的问题,请参考以下文章

使用非utf-8编码在Python中解析XML

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

Python之如何优雅的重试

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段