python中的u和unicode编码问题!!!!

DOS是gbk,所以我写的代码中指定gb2312或者gbk时,使用u('中文')时是没问题的。但是为什么使用unicode('中文')就出错了呢?听说unicode是将非unicode编码转换成unicode编码,但是为什么还是错的?求说的详细点~

# -*- coding: gbk -*-
import sys
reload(sys)
print sys.getdefaultencoding()

print u'中文'
print unicode('中文','gbk')

你运行下这个程序,就能看出来,python2默认是ascii,虽然你文件使用的gbk,但是不会影响默认编码。


print u'中文',这个是直接定义一个unicode字符串。

unicode('中文')这个是生成unicode对象,解释器会对内容使用默认编码进行解码,转换成unicode,默认的是ascii,所以报错,你指定gbk就可以了。


如果解决了您的问题请采纳!
如果未解决请继续追问

追问

你的意思是说:print unicode('中文','gbk')后,就将 '中文' 的编码格式从 'gbk'转到 unicode了。对吗? 那 decode()是不是刚好就是反过来?

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-15
# coding: utf-8
print unicode('中文','utf-8')



你要是py文件的coding是gbk就要写成:

print unicode('中文','gbk')

第2个回答  2015-04-15
#coding: utf-8
a="你好"
print a.decode("utf8")
第3个回答  2019-06-12
相似回答