python编码

Posted

tags:

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

一、系统默认编码

python 2.7版本系统默认编码是ascii

python 3.1版本系统默认编码是unicode

 

可以通过内建模块sys获取系统默认编码

import sys

print sys.getdefaultencoding()

 

有两种方法可以讲系统默认编码变成utf-8

1、在代码第一行加上  # -*- coding:utf-8 -*-

2、通过sys模块

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

 

二、用decode和encode编码

几种常见编码

  • GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换
  • GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码
  • ASCII编码:是对英语字符和二进制之间的关系做的统一规定
  • Unicode编码:这是一种世界上所有字符的编码。当然了它没有规定的存储方式。
  • UTF-8编码:是 Unicode Transformation Format - 8 bit 的缩写, UTF-8 是 Unicode 的一种实现方式。它是可变长的编码方式,可以使用 1~4 个字节表示一个字符,可根据不同的符号而变化字节长度。

编码转换

Python内部的字符串一般都是 Unicode编码。代码中字符串的默认编码与代码文件本身的编码是一致的。所以要做一些编码转换通常是要以Unicode作为中间编码进行转换的,即先将其他编码的字符串解码(decode)成 Unicode,再从 Unicode编码(encode)成另一种编码。

  decode 的作用是将其他编码的字符串转换成 Unicode 编码,eg name.decode(“GB2312”),表示将GB2312编码的字符串name转换成Unicode编码

  encode 的作用是将Unicode编码转换成其他编码的字符串,eg name.encode(”GB2312“),表示将GB2312编码的字符串name转换成GB2312编码

所以在转换之前必须先知道name的编码格式。

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

linux之系统编码,python编码,文件编码

python3读文件编码错误怎么办

python抓网页的编码问题

python编码的问题

python ACSII编码问题

python字符串编码