zoukankan      html  css  js  c++  java
  • Python2 下 Unicode 的一个小bug

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

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

    1 invalid_str = u"xbdxf4xb4xd5xd0xcdxb3xb5"

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

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

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

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

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

  • 相关阅读:
    PHP中的闭包详解
    PHPDoc 学习记录
    php中注释有关内容
    命名空间 转
    php命名空间学习笔记。
    php命名空间详解
    命名空间
    php作用域限定符
    nginx负载均衡
    naginx安装入门
  • 原文地址:https://www.cnblogs.com/lhfcws/p/3648431.html
Copyright © 2011-2022 走看看