Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式


Posted in Python onMay 11, 2020

查看字符编码:

import chardet
response = chardet.detect(b'\xe5\xbd\x93\xe5\x89\x8d\xe7\x9b\xae\xe5\xbd\x95\xe4\xb8\x8b\xe6\x89\x80\xe6\x9c\x89\xe6\x96\x87\xe4\xbb\xb6\xe5\x90\x8d\xe6\xb1\x87\xe6\x80\xbb\xe5\x88\x97\xe8\xa1\xa8')
print(response)

{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

乱码字符转换:

response = b'\xe5\xbd\x93\xe5\x89\x8d\xe7\x9b\xae\xe5\xbd\x95\xe4\xb8\x8b\xe6\x89\x80\xe6\x9c\x89\xe6\x96\x87\xe4\xbb\xb6\xe5\x90\x8d\xe6\xb1\x87\xe6\x80\xbb\xe5\x88\x97\xe8\xa1\xa8'
print(response.decode('utf8'))
# def decode_char(*args):
#   response = args[0]
#   print(response.decode('utf8'))
#
# c = b'\a8\xe5\x90\xa7\xef\xbc\x81'
#
# decode_char(c)

补充知识:python3 中怎么把类似这样的'\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82'转换成汉字输出

在编程的过程中遇到了类似的困扰,网上查了很多解决思路,终于算是明白了一些,这里和大家分享 一下。

python3相对于python2最重要的新特性之一就是对字符串(文本)和二进制数据流做了明确的区分,文本总是Unicode,由字符类型表示,而二进制数据则由bytes类型表示,python3不会以任意隐式方式混用字节型和字符型,也不能拼接字符串和字节流(python2中可以,会自动进行转换),也不能在字节流中搜索字符串,也不能将字符串传入参数为字节流的函数。

str和bytes类型之间的相互转换

字符串类str有一个encode()方法,它是字符串向比特流的编码过程。

bytes类则有一个decode()方法,它是比特流向字符串的解码过程

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

encode过程

s = '绝地求生'
ss = s.encode()
print(type(ss))
print(ss)

运行结果:

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

decode过程

s = b'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'
ss = s.decode()
print(type(ss))
print(ss)

运行结果:

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

了解过基本的转化过程,下面回到主题,如何将'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'转换成汉字输出呢?

要解决的问题是将bytes类型的内容以汉字的形式输出,但是该部分内容是字符串类型。因此首先需要将该str转换成bytes类型,再decode解码为str输出。这里需要用到的方法是encode(‘raw_unicode_escape')。当然,也可以使用decode(‘raw_unicode_escape')方法输出内容为bytes形式的字符串

s = '\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'
ss = s.encode('raw_unicode_escape')
print(type(ss))
print(ss)

sss = ss.decode()
print(sss)

结果:

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

方法补充:如果我们直接定义bytes类型的变量,也可以直接使用str(s, ‘utf8')的方式输出汉字

s = b'\xe7\xbb\x9d\xe5\x9c\xb0\xe6\xb1\x82\xe7\x94\x9f'

print(type(s))
print(s)

ss = str(s, 'utf8')
print(ss)

结果:

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

第二种方法可以输出从网络上直接抓取的网页中包含的中文字符。

我们使用如下代码,抓取网页www.baidu.com。

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html = response.read()
print(html)

显示的结果中,中文部分会以\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80代替,这里可以使用方法二进行转换。

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html =str(response.read(),'utf-8')
print(html)

结果如下:

Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

以上这篇Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
python实现kNN算法
Dec 20 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python将图片转换为字符画的方法
Jun 16 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
python list格式数据excel导出方法
Oct 31 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
如何理解Python中包的引入
May 29 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
python接口自动化框架实战
Dec 23 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
Python urllib.request对象案例解析
May 11 #Python
python将dict中的unicode打印成中文实例
May 11 #Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 #Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
May 11 #Python
Python3自定义json逐层解析器代码
May 11 #Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 #Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 #Python
You might like
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python mysql断开重连的实现方法
2019/07/26 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python numpy数组复制使用实例解析
2020/01/10 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
化学相关工作求职信
2013/10/02 职场文书
新员工欢迎词
2014/01/12 职场文书
2014年党员整改措施
2014/10/24 职场文书
优秀党员事迹材料
2014/12/18 职场文书
公司辞职信模板
2015/05/13 职场文书
新郎结婚感言
2015/07/31 职场文书
生活小常识广播稿
2015/08/19 职场文书
2019求职信大礼包
2019/05/15 职场文书