关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题)。

在有时候我们去爬取网页或者调用一些第三方库获取文本的时候,有可能会出现这样一种情况:

 invalid_str = u"\xbd\xf4\xb4\xd5\xd0\xcd\xb3\xb5"

在一个unicode对象里内容居然是GBK的编码!这时候无论你怎么encode或decode,要么是抛错,要么是乱码。

实际上这种情况不应该出现的,在Python3里这种情况是不合法的会抛错。但Python2容许了其存在,就造成了很多问题。

解决办法很简单,一个小trick,利用"latin-1"编码的特殊性:

 unicode_str = invalid_str.encode('latin-1').decode('gbk')

这时候的 unicode_str 便是合法的unicode对象了,print一下就能看到你所期待的结果了!

最新文章

  1. 关于最少VC号数目的猜想
  2. 给自己的Unity添加声音文件
  3. auto与decltype
  4. iOS学习11之OC继承
  5. [家里蹲大学数学杂志]第237期Euler公式的美
  6. JS解析json数据并将json字符串转化为数组的实现方法
  7. Visual Studio之Nuget(服务器)
  8. Unity 打包总结和资源的优化和处理
  9. 秒表计时器以及Stopwatch
  10. “HtmlAgilityPack”已拥有为“System.Net.Http”定义的依赖项的解决方案
  11. 【原创】大数据基础之Marathon(1)简介、安装、使用
  12. Spring Security Session并发控制原理解析
  13. csla框架__使用Factory方式实现Csla.BusinessBase对象数据处理
  14. oracle 11 g release 2 卸载
  15. 第二次项目冲刺(Beta版本)2017/12/8
  16. Nginx 使用(server参数配置)
  17. fastJson去掉指定字段
  18. 笔记:配置 webpack dev server
  19. REST API风格
  20. 定义DoubleArray并将其作为value写入SequenceFile

热门文章

  1. MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用
  2. NOSDK--一键打包的实现(三)
  3. IBAction和IBOutlet
  4. 日期控件jsdate用法注意事项
  5. PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别
  6. bash 语法使用
  7. BZOJ2435——[Noi2011]道路修建
  8. js parseInt 显示0
  9. java final 关键字
  10. Proj.4 API 中文参考