时间:2021-05-22
这篇文章主要介绍了Python3的unicode编码转换成中文的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
从别的地方搬过来的,担心以后不容易搜索到,就收集过来。
我当时面临的问题是要从C++发json代码出来,用python写了个server,然后返回给C++程序,结果收到的是:
我发过去的是utf-8编码,中间有中文,"新A1EY16",结果发回来的却是:"\u65b0A1EY16"
9102年,大部分人已经受尽了python2里面unicode的折磨,转向了python3。
python3似乎对一切的unicode都那么的友好,当一个字符串里存在unicode的时候,只要字符串是硬编码的,就可以转换成中文打印在控制台上,如:
s = ‘\u7b14\u8bb0'print(s)你得到的就是中文汉字。
但是,假如你。。的这段含有‘\u'的unicode编码不是硬编码进脚本的,而是通过requests在网上爬的。。。那么你会发现,你打印出来的,还是长这样的unicode编码,换句话说,解释器这个时候根本就没认出这东西原来是unicode编码,当成普通的字符序列了。
百度找到了最好的解决方法:在这个unicode串后面加上:
s = s.decode().encode(‘unicode_escape')print(s)它就打印出汉字了
python3中没有这种问题,所以最简单的方法是引入__future__模块,把新版本的特性导入到当前版本
from __future__ import unicode_literalsprint json.dumps(m,ensure_ascii=False)=>{"a": "你好"}在写入文件的时候出现了Python2.7的UnicodeEncodeError: ‘ascii' codec can't encode异常错误
大神的解决方法:
不使用open打开文件,而使用codecs:
from __future__ import unicode_literalsimport codecsfp = codecs.open('output.txt', 'a+', 'utf-8')fp.write(json.dumps(m,ensure_ascii=False))fp.close()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python3中str默认为Unicode的编码格式Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk等等所以在Pytho
问题你想使用一个Python字典存储数据,并将它转换成XML格式。解决方案尽管xml.etree.ElementTree库通常用来做解析工作,其实它也可以创建X
有一设备,为短信网关。需将PC送过来的UTF-8转换成UNICODE才能将内容通过短信发送出去,同样,接收到的短信为unicode编码,也许转换成UTF-8才能
获取带有中文参数的url内容对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urll
起步Python3起,str就采用了Unicode编码(注意这里并不是utf8编码,尽管.py文件默认编码是utf8)。每个标准Unicode字符占用4个字节。