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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
全面解读Python Web开发框架Django
Jun 30 Python
用Python进行TCP网络编程的教程
Apr 29 Python
利用ctypes提高Python的执行速度
Sep 09 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
redis之django-redis的简单缓存使用
Jun 07 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
用Python读取几十万行文本数据
Dec 24 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
什么是python的自省
Jun 21 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
PHP pear安装配置教程
2016/05/14 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
用javascript操作xml
2006/11/04 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
关于青春的演讲稿
2014/05/05 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
2015年纪委工作总结
2015/05/13 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python