python转码时出现'illegal multibyte sequen'错误
为什么80%的码农都做不了架构师?>>>
在Python中,可以对String调用decode和encode方法来实现转码。
比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作
s.decode('gbk').encode('utf-8′)
可是,在实际开发中,我发现,这种办法经常会出现异常:
UnicodeDecodeError: ‘gbk' codec can't decode bytes in position 30664-30665: illegal multibyte sequence
这 是因为遇到了非法字符——尤其是在某些用C/C++编写的程序中,全角空格往往有多种不同的实现方式,比如\xa3\xa0,或者\xa4\x57,这些 字符,看起来都是全角空格,但它们并不是“合法”的全角空格(真正的全角空格是\xa1\xa1),因此在转码的过程中出现了异常。
这样的问题很让人头疼,因为只要字符串中出现了一个非法字符,整个字符串——有时候,就是整篇文章——就都无法转码。
解决办法:
s.decode('gbk', ‘ignore').encode('utf-8′)
因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
python文档
decode( [encoding[, errors]])
Decodes the string using the codec registered for encoding. encoding defaults to the default string encoding. errors may be given to set a different error handling scheme. The default is 'strict', meaning that encoding errors raise UnicodeError. Other possible values are 'ignore', 'replace' and any other name registered via codecs.register_error, see section 4.8.1.
转载于:https://my.oschina.net/jlan/blog/517467
python转码时出现'illegal multibyte sequen'错误相关推荐
- 编码调试:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 12: illegal multibyte sequen
在程序段: stopkey = [w.strip() for w in codecs.open('data/stopWord.txt', 'r').readlines()] 出现错误: Unicode ...
- ‘gbk‘ codec can‘t decode byte 0xad in position 2: illegal multibyte sequence 错误的解决方法
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence 翻译: ...
- arcade 读取地图信息时:错误: ‘gbk‘ codec can‘t decode byte 0x91 in position 314: illegal multibyte sequence
arcade 读取地图信息时:错误: 'gbk' codec can't decode byte 0x91 in position 314: illegal multibyte sequence E: ...
- 解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c in position : illegal multibyte sequence
问题描述:在命令行输入python并回车时,会进入python交互式环境,但是有的时候会出现如下的错误 (speaker_recognition) PS D:\> python.exe Pyth ...
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9a in position 174: illegal multibyte sequence
UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 174: illegal multibyte sequence 小 ...
- 强推!!!解决UnicodeEncodeError: ‘gbk‘ codec can‘t encode character.....: illegal multibyte
解决pycharm编码报错问题 困扰了好几天的编码问题终于得到了解决,其实问题很简单,当你用pycharm打开一个txt/json/csv文件时,像下面这种: 明明已经指定了编码方式为utf-8为什么 ...
- python编译器源码_编译python源码
广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 尝试通过源码自己编译 python,使用的系统是 ubuntu14.04 l ...
- Python 读文件错误: invalid start byte / illegal multibyte sequence
# Time: 2020/05/31 #Author: Xiaohong # 运行环境: OS: Windows 10 # Python: 3.7 # 功能: 读文件时,产生错误的解决方法 # 错误 ...
- Python 基于csv 读取文本文件提示:‘gbk‘ codec can‘t decode byte 0xbf in position 2: illegal multibyte sequence
报错 Python 基于csv 读取文本文件提示:'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequenc ...
- python中txt文件读取错误原因以及解决办法‘gbk‘ codec can‘t decode byte 0x80 in position 2: illegal multibyte sequence
python的读写文件操作时,有时候会出现一些小问题,详细如下,(原因在前面,解决办法在文末). 读取txt文件时出现错误反馈如下: Traceback (most recent call last) ...
最新文章
- 【PCL】的五大依赖库及作用
- pytorch中tensor的unsqueeze()函数和squeeze()函数的用处
- 向前欧拉公式 matlab_你可能不知道的MATLAB操作#第三话
- 10.NoSQL数据库第2部分
- webapi输出炜json_WebApi返回Json格式
- 河南城建计算机网络试卷,河南城建计算机网络技术学习心得体会.docx
- Base64与文件(docx)流的加密和解密
- [转]Python中多线程与多进程中的数据共享问题!
- phaser java_Java 7的并发编程-Phaser
- linux定时任务生效_Linux 添加定时任务
- BZOJ5312 冒险 势能分析、线段树
- HQChart实战教程17 -K线沙盘推演
- openssl生成ras证书
- ORA-03135: Connection Lost Contact 数据库丢失联系
- Excel使用攻略(1)
- html padding顺序,html中padding用法
- AppleScript学习笔记(一)初识AppleScript
- 转:腾讯4亿元投资KakaoTalk(韩国微信) 后者去年亏损7600万元
- python用matplotlib画雷达图_python使用matplotlib绘制雷达图
- 数据库系统概念笔记——第三章:SQL
热门文章
- 3d Max 2014设置背景没有锁定选项的解决方法
- ShoeBox制作字体
- DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么
- 数据结构_树与二叉树总结
- 计算机NIC配置,在主计算机或 VM 上创建新的 NIC 团队
- JS 实现小游戏 打砖块
- [转]飞鸟集 Stray Bird
- oracle 11g crsd ocssd,[Oracle 11g r2(11.2.0.4.0)]集群守护进程gipc介绍
- 趋势追踪交易课堂:复盘的意义和方法
- 疫情之下,我们该如何选择工作?