为什么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'错误相关推荐

  1. 编码调试: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 ...

  2. ‘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 翻译: ...

  3. 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: ...

  4. 解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x8c in position : illegal multibyte sequence

    问题描述:在命令行输入python并回车时,会进入python交互式环境,但是有的时候会出现如下的错误 (speaker_recognition) PS D:\> python.exe Pyth ...

  5. 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 小 ...

  6. 强推!!!解决UnicodeEncodeError: ‘gbk‘ codec can‘t encode character.....: illegal multibyte

    解决pycharm编码报错问题 困扰了好几天的编码问题终于得到了解决,其实问题很简单,当你用pycharm打开一个txt/json/csv文件时,像下面这种: 明明已经指定了编码方式为utf-8为什么 ...

  7. python编译器源码_编译python源码

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 尝试通过源码自己编译 python,使用的系统是 ubuntu14.04 l ...

  8. Python 读文件错误: invalid start byte / illegal multibyte sequence

    # Time: 2020/05/31 #Author: Xiaohong # 运行环境: OS: Windows 10 #  Python: 3.7 # 功能: 读文件时,产生错误的解决方法 # 错误 ...

  9. 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 ...

  10. python中txt文件读取错误原因以及解决办法‘gbk‘ codec can‘t decode byte 0x80 in position 2: illegal multibyte sequence

    python的读写文件操作时,有时候会出现一些小问题,详细如下,(原因在前面,解决办法在文末). 读取txt文件时出现错误反馈如下: Traceback (most recent call last) ...

最新文章

  1. 【PCL】的五大依赖库及作用
  2. pytorch中tensor的unsqueeze()函数和squeeze()函数的用处
  3. 向前欧拉公式 matlab_你可能不知道的MATLAB操作#第三话
  4. 10.NoSQL数据库第2部分
  5. webapi输出炜json_WebApi返回Json格式
  6. 河南城建计算机网络试卷,河南城建计算机网络技术学习心得体会.docx
  7. Base64与文件(docx)流的加密和解密
  8. [转]Python中多线程与多进程中的数据共享问题!
  9. phaser java_Java 7的并发编程-Phaser
  10. linux定时任务生效_Linux 添加定时任务
  11. BZOJ5312 冒险 势能分析、线段树
  12. HQChart实战教程17 -K线沙盘推演
  13. openssl生成ras证书
  14. ORA-03135: Connection Lost Contact 数据库丢失联系
  15. Excel使用攻略(1)
  16. html padding顺序,html中padding用法
  17. AppleScript学习笔记(一)初识AppleScript
  18. 转:腾讯4亿元投资KakaoTalk(韩国微信) 后者去年亏损7600万元
  19. python用matplotlib画雷达图_python使用matplotlib绘制雷达图
  20. 数据库系统概念笔记——第三章:SQL

热门文章

  1. 3d Max 2014设置背景没有锁定选项的解决方法
  2. ShoeBox制作字体
  3. DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么
  4. 数据结构_树与二叉树总结
  5. 计算机NIC配置,在主计算机或 VM 上创建新的 NIC 团队
  6. JS 实现小游戏 打砖块
  7. [转]飞鸟集 Stray Bird
  8. oracle 11g crsd ocssd,[Oracle 11g r2(11.2.0.4.0)]集群守护进程gipc介绍
  9. 趋势追踪交易课堂:复盘的意义和方法
  10. 疫情之下,我们该如何选择工作?