欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python中的编码和解码

程序员文章站 2022-06-14 15:17:37
...

计算机中常见的编码方式有多种,英文一般是ascii编码,其他有unicode,utf-8,gbk,utf-16等编码。

 

常见编码方式:

  • ASCII编码:ASCII是早期的编码,包含英文字母、数字和一些英文符号一共127个符号;
  • Unicode编码:不同的语言有各自不同的编码方式,导致在多种语言环境下按照某一种固定的编解码方式会出现乱码。为了统一,制定了Unicode编码。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了,一般使用两个字节表示一个字符。现代的操作系统和大多数编程语言都支持Unicode;
  • UTF-8编码:UTF-8是Unicode编码的一种存储和传输的方式。由于英文字符只需要占用一个字节的空间就够了,但如果统一采用Unicode的两个字节来表示,会浪费存储空间,增加传输消耗,UTF-8把Unicode编码转化成“可变长编码”,可以根据不同的符号变化字节的长度;
  • GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换;
  • GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码;
  • 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码,当文件被打开的时候,UTF-8字符被转换成Unicode字符到内存中,文件关闭的时候,再从Unicode转化成UTF-8保持到磁盘上,以节省(传输)空间。

 

python中的编码转化
python内部的字符串一般是Unicode编码,Unicode是utf-8、gbk等编码的父编码,这些子编码方式之间不能直接转化,需要先转化成Unicode,再转化成其他编码方式,Unicode作为转换的中间码。python中的解码(decode)是从子编码转换成Unicode编码,编码(encode)是从Unicode转其他子编码

 

查询字符串是否是Unicode编码

 

isinstance(str,unicode)

查询系统默认编码

    import sys
     
    print sys.getdefaultencoding()

 编码转换

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import sys
     
    print sys.getdefaultencoding()
    str = '中国'
    str = str.decode('utf8')
    print isinstance(str,unicode)
    str = str.encode('gbk')
    print isinstance(str,unicode)

 

 

 

 

 

 

相关标签: 编码