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的编码格式。

posted @ 2017-01-11 11:12  梦涯儿  阅读(192)  评论(0编辑  收藏  举报