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中实现两个字典(dict)合并的方法
Sep 23 Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
python用来获得图片exif信息的库实例分析
Mar 16 Python
Python中分数的相关使用教程
Mar 30 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
python查看列的唯一值方法
Jul 17 Python
python面向对象 反射原理解析
Aug 12 Python
Python使用python-docx读写word文档
Aug 26 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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
PHP 字符串分割和比较
2009/10/06 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
如何通过python检查文件是否被占用
2020/12/18 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
应届毕业生个人自荐信范文
2013/11/30 职场文书
学徒工职责
2014/03/06 职场文书
幼儿园教师求职信
2015/03/20 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
SpringBoot快速入门详解
2021/07/21 Java/Android
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers