读书人

python类型转换有关问题

发布时间: 2014-01-08 00:30:58 作者: rapoo

python类型转换问题


>>> import sys
>>> print sys.getdefaultencoding()
ascii
>>> s = u'我是中国人'
>>> s
u'\xce\xd2\xca\xc7\xd6\xd0\xb9\xfa\xc8\xcb'#这是什么编码?
>>> print s
?òê??D1úè? #乱码?why?
>>> type(s)
<type 'unicode'>
>>> print s.encode('utf-8')
鹿煤 #乱码?why?
>>> print s.encode('gb2312')

Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
print s.encode('gb2312')
UnicodeEncodeError: 'gb2312' codec can't encode character u'\xce' in position 0: illegal multibyte sequence
>>> isinstance(s,unicode)
True
>>>

想问下,系统既然默认保存是ascii,对ascii进行encode为指定的编码进行输出时,为何会出现乱码啊?
2.print函数输出的话,默认是不是会将ascii转换为哪个编码呀?
3.如何将上面的s正常输出成中文呢?










[解决办法]
http://bugs.python.org/issue15809

读书人网 >perl python

热点推荐