Python3的unicode编码转换成中文的问题及解决方案


Posted in Python onDecember 10, 2019

这篇文章主要介绍了Python3的unicode编码转换成中文的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

从别的地方搬过来的,担心以后不容易搜索到,就收集过来。

我当时面临的问题是要从C++发json代码出来,用python写了个server,然后返回给C++程序,结果收到的是:

httpSvrDataCbUser: {"tranNO": "0808ad498670dc996", "data": "\u65b0A1EY16", "ver": "1.0", "sendTime": "2019-12-10 00:23:51", "tranType": "2001"}

我发过去的是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_literals
print json.dumps(m,ensure_ascii=False)
=>{"a": "你好"}

在写入文件的时候出现了Python2.7的UnicodeEncodeError: ‘ascii' codec can't encode异常错误

大神的解决方法:

不使用open打开文件,而使用codecs:

from __future__ import unicode_literals
import codecs
fp = codecs.open('output.txt', 'a+', 'utf-8')
fp.write(json.dumps(m,ensure_ascii=False))
fp.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
巧用Python装饰器 免去调用父类构造函数的麻烦
May 18 Python
python实现360的字符显示界面
Feb 21 Python
使用Python实现下载网易云音乐的高清MV
Mar 16 Python
Python中文竖排显示的方法
Jul 28 Python
python+opencv识别图片中的圆形
Mar 25 Python
python利用微信公众号实现报警功能
Jun 10 Python
python实现对csv文件的列的内容读取
Jul 04 Python
Django实现单用户登录的方法示例
Mar 28 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
python实现连连看游戏
Feb 14 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
python如何用matplotlib创建三维图表
Jan 26 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 #Python
python3 webp转gif格式的实现示例
Dec 10 #Python
Spring Cloud Feign高级应用实例详解
Dec 10 #Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 #Python
使用opencv将视频帧转成图片输出
Dec 10 #Python
django框架cookie和session用法实例详解
Dec 10 #Python
python selenium实现发送带附件的邮件代码实例
Dec 10 #Python
You might like
php5 图片验证码实现代码
2009/12/11 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
PHP云打印类完整示例
2016/10/15 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
对python中return和print的一些理解
2017/08/18 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
python创建文本文件的简单方法
2020/08/30 Python
办公室员工岗位工作职责
2014/03/10 职场文书
教导主任个人总结
2015/03/03 职场文书
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android