[python 学习] 编码

一、源文件编码(encoding: utf-8)

1、

python 2.x 默认按ascii编码读取源文件,源码中出现了ascii不能表示的字符 "的",所以报错(3.x版本不报错)。

 

2、

源码中加上 encoding: utf-8,此时允许源文件中出现非ascii字符,但是在windows的DOS中输出时还会再转码(此处转为GBK)。 

 

3、

源文件的编码和dos的输出编码都是GBK,这时内容一致。

同上。

 

二、字符串编码

1、字符串存储的默认编码:

python 2.7

python 3.3.3

2、unicode对象和普通字符串str

对 s 按 utf-8 解码到unicode对象,再对unicode对象按gbk编码。

直接对str字符串按gbk编码出错,是因为字符串的默认编码(python 2.7)是ascii,默认执行 s.decode('ascii').encode('gbk'),所以出错。

设置了字符串默认编码为utf-8,不会再报错。

python中我们使用decode()和encode()来进行解码和编码
在python中,使用unicode类型作为编码的基础类型。即:
      decode           encode
str--------->unicode--------->str

适用 python 2.x , python 3.x 又变了,一个版本一个语言。

 

三、basestring、str、unicode

3.1 str 和 unicode 都是 basestring 的子类:

 3.2 使用 str 创建 unicode 对象:

 

参见:http://www.cnblogs.com/evening/archive/2012/04/19/2457440.html

posted @ 2017-11-03 17:02  那天ws  阅读(161)  评论(0编辑  收藏  举报