python中怎样将unicode转换成原来的中文?
python默认就是unicode存储。如果是从文件读取的,在open的参数中指定encoding关键字参数就行。如下:
#coding=utf-8/import json /def LoadQuestion(): /f = open("test.json",'r') qas = json.load(f) question = qas['documents'] /return question/t = LoadQuestion() /print str(t).decode("unicode-escape")
拓展资料:
通常python2时所有IO读写都是byte方式。也就是编码后的。java也是这样子。只有python3还有某些特定的模块才会自动将byte重新转换成unicode
在python2里的确可以使用s.decode('gbk','ignore')之类的变成unicode。不过在python3里应该是这样子, s.encode('gbk','ignore')这样就变成了byte
如果你喜欢 utf-8,可以s.encode(‘utf-8','ignore')和s.decode(‘utf-8','ignore')
通常python2时所有IO读写都是byte方式。也就是编码后的。java也是这样子。只有python3还有某些特定的模块才会自动将byte重新转换成unicode
在python2里的确可以使用s.decode('gbk','ignore')之类的变成unicode。不过在python3里应该是这样子, s.encode('gbk','ignore')这样就变成了byte
如果你喜欢 utf-8,可以s.encode(‘utf-8','ignore')和s.decode(‘utf-8','ignore')
多试试就可以了。 console和文件只支持编码过的字符串。
用的是python2.6
如果是python2系列就可以放心大胆的去使用了。loads载入?我不太记得了。我一般记得数据库是建立一个cursor然后是fetch过来的。 一条一条的。这个DBAPI会自动做些变量转换。
如果type(s)的确是unicode,直接print s.encode("gbk","ignore)
还是不行的话,应该看看是将中文编码为什么码之后传到了后台,如果不是把中文编码为Unicode之后传到了后台,而是编码为utf-8之类的,那上面的方法肯定不行
传到后台前用了tornado.escape 包里的json_encode处理,后台接收到后用json_decode解码然后用json.dumps处理后就直接存到数据库的,数据库取出后用json.loads处理后还是unicode,代码文件开始声明的是codng:utf-8
1、python2与python3稍微有点区别
2、python2中默认的字符编码格式都是unicode,在字符串前加'u',表示unicode 编码
3、将unicode转换成中文,只需要用deconde解码就可以了
>>> u='欢迎'
>>> e=u.encode()
>>> e
b'\xe6\xac\xa2\xe8\xbf\x8e'
>>> e.decode()#python3中默认就是utf-8编码
'欢迎'
>>> e.decode('gbk')#如果解码为gbk就是乱码
'娆四繋'
python2编码环境比较复杂,在这里不做详细说明
不行
额……s.decode('raw_unicode_escape')再试试这个……