Python 2.7 学习笔记 中文处理

Posted 51kata

tags:

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

首先我们在编写python代码文件时,文件本身会采用一种编码格式,如 utf-8 或 gbk

这时我们需要在python文件的开头设置文件的编码格式,以告诉编译器。

如果文件的编码格式是 utf-8, 则在文件的第一行需要添加如下语句

#coding=utf-8

如果文件的编码格式是 utf-8, 则在文件的第一行需要添加如下语句

#coding=gbk

如果设置为utf-8的格式,在linux执行,中文处理,包括显示没任何问题。

但是如果设置为utf-8的格式,在window下,在命令行下执行时,发现利用 print打印中文会出现乱码。

原因是因为,虽然文件声明为utf-8,且用utf-8的编码保存的源文件。但是windows的(www.111cn.net)本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串就显示乱码了。 注意,实际上只是显示有问题,入库等处理并没问题。

这有两种解决方案。

一、方案一:

将文件的编码格式改为gbk,并在文件的第一行改为#coding=gbk,这时处理中文就没问题。

但这个方案带来的问题,如果该文件放到Linux下可能会显示出问题。因为一般linux机器下没有gbk的字符集。

 

二、方案二

文件还是采用utf-8的编码,文件头的第一行依然是#coding=utf-8

这时在print 中文时需要进行下编码,代码如:

print "中文".decode(‘utf-8‘).encode(sys.getfilesystemencoding())

注意:因为用到了sys模块,需要在语句执行添加 import sys

这样带来的问题,print语句比较臃肿,可以考虑自己封装下.

  

以上是关于Python 2.7 学习笔记 中文处理的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7 学习笔记 列表的使用

Python 2.7 学习笔记 模块和包

Python 2.7 学习笔记 基本知识

Python 2.7 学习笔记 条件与循环语句

Python 2.7 学习笔记 面向对象的编程

Python 2.7 学习笔记 内置语句函数标准库