python中怎样将unicode转换成原来的中文?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中怎样将unicode转换成原来的中文?相关的知识,希望对你有一定的参考价值。
前端将中文编码后传到后台,后台对传来的数据进行json.dumps存入mysql数据库,取出来后用loads载入,但结果还是unicode,想问下有没有什么办法把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
参考技术C1、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编码环境比较复杂,在这里不做详细说明
参考技术D s.encode('utf8')或者s.encode('gb2312')试试~追问不行
追答额……s.decode('raw_unicode_escape')再试试这个……
以上是关于python中怎样将unicode转换成原来的中文?的主要内容,如果未能解决你的问题,请参考以下文章