python的中文问题一直是困扰新手的头疼问题,python的发行版至今尚未包括任何中文支持模块。那么python语言支持中文吗?遇到中文问题怎么办?
1. print打印中文的问题:
在编辑器中输入一段测试代码:
s=’测试’print s运行结果如下:
non-ascii character '\xb2' in file c:\documents and settings\administrator\桌面\2.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details: 2.py, line 1, pos 0
原因是如果文件里有非ascii字符,需要指定编码声明。把2.py文件的编码重新改为utf-8,并加上编码声明:
# -*- coding: utf-8 -*-s=’测试’print s
运行后可以正确打印中文。
2.中文路径的问题。
在d盘下保存一个名字为‘中文.txt‘的文件。运行如下测试代码:
# -*- coding: utf-8 -*-f=open('d:\\中文.txt', 'r')print f.read()
运行结果如下:
ioerror: [errno 2] no such file or directory: 'd:\\\xe4\xb8\xad\xe6\x96\x87.txt'
字符串有很多的编码,不同的系统和平台有各自的编码 ,为了实现系统或平台之间的信息交互可能需要编码转换。这里只需要先使用unicode编码一下,这样再读取中文路径就不会有问题了:
# -*- coding: utf-8 -*-path='d:\\中文.txt'spath=unicode(path , "utf8")f=open(spath,'r')print f.read()
然后就可以正确显示文件内容
总结:
所有的中文显示问题都可以归结为编码问题,遇到其他类似的问题,那只能仔细看文档,靠你的经验,靠你多做测试。而且根据python所报出来的错误一般也可以判断出来。那么当发现需要编码转换时,剩下的就是如何正确进行码制转换。
为了正确处理多语言文本,python在2.0版后引入了unicode字符串。从那时起,python语言中的字符串就分为两种:一种是2.0版之前就已经使用很久的传统python字符串,一种则是新的unicode字符串。在python语言中,一般的解决办法是使用unicode()内建函数对一个传统python字符串进行“解码”,得到一个unicode字符串,然后又通过unicode字符串的encode()方法对这个unicode字符串进行“编码”,将其“编码”成为传统python字符串。
以上就是python语言支持中文吗的详细内容。
