python2.7删除所有非utf-8编码的字符串
第一种办法是使用正则直接删除非utf-8的字符\x85,以下是请网友帮助写的
#-*- encoding:utf-8 -*-
import sys
reload(sys)
import chardet
sys.setdefaultencoding('utf-8')
strs=" should buy\x85 appleyuchi \x85 I decide to try this one. "
# fencoding=chardet.detect(strs)
# print fencoding
import re
p=re.compile(r'[^\x00-\x7f]')
m=re.sub(p,'',strs)
print m
第二种办法是
#-*- encoding:utf-8 -*-
import sys
reload(sys)
import chardet
sys.setdefaultencoding('utf-8')
strs=" should buy\x85 appleyuchi \x85 I decide to try this one. "
fencoding=chardet.detect(strs)
print fencoding
print strs.decode('windows-1252')
运行结果:
{'confidence': 0.73, 'language': '', 'encoding': 'Windows-1252'}
should buy… appleyuchi … I decide to try this one.
也就是先判断strs是什么类型的编码,然后根据该编码名字进行解码
第三种办法:
定位到错误后,在python交互模式下:
>>> ord('\x85')
133
>>>
因为unicode是兼容ASCII的,但是ord值大于127,所以\x85既不是ASCII也不属于unicode,只能是其他编码,判断之后,转到第一种处理或者第二种办法处理。
记录网友的话:用java爬取数据,即使代码中设定编码为utf-8,但是如果数据本身是非utf-8,那么即使代码设定为utf-8,也是无法对非utf-8的数据进行解码的,此时只能手动解码。decode('windows-1252')
字符集可以在下面查看(需要翻墙),在右上角输入\x85,回车后就可以查到在不通的语言中对应的字符
http://www.charbase.com/0085-unicode-next-line-nel
注意
字符,字符串是两个不同的东西
unicode做的就是用多个字符表示一个对应的关系
>>> print('我'.encode())
b'\xe6\x88\x91'
for i in str('我'.encode()): print(ord(i))
每一位ascii(也就是\xe6,\x88\,x91)都是在128以下的
python2.7删除所有非utf-8编码的字符串相关推荐
- Swift3.0语言教程删除字符与处理字符编码
Swift3.0语言教程删除字符与处理字符编码 Swift3.0语言教程删除字符 Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除.在NS ...
- 【协作MIMO+非规则LDPC】协作MIMO系统上,中继协作解码转发策略和编码协作策略,采用非规则LDPC编码
1.软件版本 MATLAB2013b 2.本算法理论知识 做非规则LDPC码的以编码协作形式的中继协议,比较以下三种情况下的误码率图和中断概率图: 源节点一个(配置一根天线),中继节点4个(每个节点配 ...
- html转换编码格式,html编码转换 html编码设置utf gbk编码转换图文教程
html编码转换 html编码设置utf gbk编码转换图文教程篇 常用HTML编码之urf-8编码转换为gb2312编码或者gb2312转换为utf-8编码快速转换设置,这里DIVCSS5介绍使用D ...
- Excel批量删除选区非数字的单元格的操作
如下图所示删除非数字,最后只留下123,如何批量操作呢 (方方格子插件) 1.先看动图演示吧 2.选中数据区域 3.选择diy工具箱插件 4.找到收纳箱按钮 5.搜索删除选区非数字,找到这个命令 6. ...
- python utf—8编码问题待解决
执行python manage. py runserver后出现错误 utf-8编码出错 (result, consumed) = self._buffer_encode(data, self.err ...
- 基于verilog的非归零编码、非归零反转编码、归零编码(RZ)
非归零编码 编码数学模型: 1.当前时钟,输入为低,输出则为低:输入为高,输出则为高 2.逻辑0和逻辑1通常用于调制信道信号的不同状态,例如-12V和+12V 3.由于没有使信道归零的逻辑和状态,故称 ...
- 无法在“窗口”上执行“ btoa”:要编码的字符串包含Latin1范围之外的字符
如何解决无法在"窗口"上执行" btoa":要编码的字符串包含Latin1范围之外的字符? 如果您有UTF8,请使用它(实际上与SVG源一起使用),例如: bt ...
- UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理(c++实现)...
一.字符编码简单介绍 1. ASCII码 在计算机内部,全部的信息终于都表示为一个二进制的字符串.每个二进制位(bit)有0和1两种状态,因此八个二进制位就能够组合出256种状态,这被称为一个字节(b ...
- python ascii码16进制转换_如何在Python十六进制整数和ASCii编码的字符串之间进行转换...
今天,我将与您分享一种将Python十六进制整数转换为ASCii编码的字符串的方法,该方法具有很好的参考价值,希望对大家有所帮助. 让我们一起关注小编,看看 当使用Pyserial与STM32通信时, ...
最新文章
- Java与UML交互图
- TCP/IP详解--第九章
- ArcEngine 图层标注 (根据字段、角度)
- sql insert 自动增量值_SQL中有关DQL、DML、DDL、DCL的概念与区别
- Ajax异步请求-简单模版
- 郎溪 溪流_到无限(溪流)和超越!
- matlab程序设计图像匹配,灰度,归一化算法,快速匹配。有代码好用。转载
- 每周一书-2016年8月28日到9月4日获奖读者公布
- 洛谷——P1421 小玉买文具
- 30美味的食物移动应用设计
- JSP + AjaxAnywhere页面开发规范
- [转]tar 命令使用
- HTML5游子吟网页的完整代码,游子吟古诗注释范文(5页)-原创力文档
- 2017.2.10【初中部 GDKOI】模拟赛B组 方格游戏(game) 题解
- 蓝牙鼠标windows linux,关于windows linux双系统共用蓝牙鼠标的教程
- 安装caffe中间遇到的一些问题
- [cesium] | 视频融合 | 基于3dtileset的视频投射插件 | 支持动态调整角度
- 长生诀linux架设教程,手游【长生诀】VM一键即玩服务端+GM工具+图文教程
- 38211协议学习笔记(2)-帧结构和物理资源
- 第29节 防火墙部署实验(IP、策略、NAT、HA)——基于topgate防火墙的网页部署方法