浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)

yipeiwu_com6年前Python基础

Python2中编码相关的问题很是让人蛋疼,特别是中文字符。

比如本文所述的中文网页GBK编码的诡异问题。

现象

例如:盲录職氓聭聵,其实网页里面正常的应该是会员

分析

接着上面的例子,会员这部分乱码通过repr()函数求值得到如下结果

\xc3\xa4\xc2\xbc\xc2\x9a\xc3\xa5\xc2\x91\xc2\x98

使用type()函数求值得到的结果为unicode

eval(repr())出来值为

盲录職氓聭聵

通过查表上述6个汉字对应

c3a4 c2bc c29a c3a5 c291 c298

而上面内容对应的UTF-8值就是会员

解决方法

相当诡异的是本身是unicode编码,却被当作GBK系列来解码,结果导致乱码。因此将这些字符先编码再解决解决问题。

encode('raw_unicode_escape').decode()

以上这篇浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中使用select模块实现非阻塞的IO

Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一...

python @property的用法及含义全面解析

在接触python时最开始接触的代码,取长方形的长和宽,定义一个长方形类,然后设置长方形的长宽属性,通过实例化的方式调用长和宽,像如下代码一样。 class Rectangle(ob...

Python进阶_关于命名空间与作用域(详解)

写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字、对象及其绑定的文章。 1. 命名空间 1.1 什么是命名空间...

python实现京东秒杀功能

本文实例为大家分享了python实现京东秒杀的具体代码,供大家参考,具体内容如下 # _*_coding:utf-8_*_ from selenium import webdriv...

Python实现 版本号对比功能的实例代码

下面先给大家介绍python实现版本号对比功能,具体内容如下所示: 相同位置版本号大小比较: def abc(str1, str2): if str1 == "" or str2...