python 中文编码

python 中文编码

我在学python的过程中,遇到的第二个问题,就是中文乱码,如今也算勉强入门了,在这里给大家说说我的经验,也算个新人引导吧。

在文章里,我会重点提到一个概念:有来有去。

即数据从哪里来,到哪里去?

====================================================

1、windows下cmd终端中的中文

C:\Documents and Settings\admin>python

Python 2.7.7 (default, Jun 1 2014, 14:17:13) [MSC v.1500 32 bit (Intel)] on win

32

Type "help", "copyright", "credits" or "license" for more information.

>>> s = '我是中文'

>>> ss = u'我真的是中文'

>>> s

'\xce\xd2\xca\xc7\xd6\xd0\xce\xc4'

>>> ss

u'\u6211\u771f\u7684\u662f\u4e2d\u6587'

>>> print s

我是中文

>>> print ss

我真的是中文

>>>

这样看来,输入和输出都不会出现乱码的,即使我们的字符串加了u。

1)输入从哪里来?

终端

2)输入是什么编码?

一个不知道,一个是unicode

3)输出是什么编码?

不知道

2.、windows下cmd中执行py文件

我们先来看看代码test.py

#coding:utf-8

s = 'abc我是中文字符串'

ss = u'我也是中文字符串'

print s

print repr(s)

print ss

print repr(ss)

文件是以utf8 withour BOM形式存在的(后面我们再来讨论文件编码)。

我们在cmd终端中执行看看

D:\code>python test.py

abc鎴戞槸涓 枃瀛楃 涓

'abc\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'我也是中文字符串

u'\u6211\u4e5f\u662f\u4e2d\u6587\u5b57\u7b26\u4e32'

D:\code>

天啊,怎么会有乱码,怎么能有乱码!!我快疯了。

stop,先别疯,我们来一步一步分析:

1)输入从哪里来?

废话,从文件里来

2)输入是什么编码?

这个,好像一个是utf8,一个是unicode

3)输出是什么编码?

不知道哎,不是utf8么?

是不是看出一点点问题了?

相关推荐
相关主题
热门推荐