python去掉 unicode 字符串前面的u方法

yipeiwu_com5年前Python基础

有时我们会碰到类似下面这样的 unicode 字符串:

u'\xe4\xbd\xa0\xe5\xa5\xbd'

这明显不是一个正确的 unicode 字符串,可能是在哪个地方转码转错了。

我们要想得到正确的 unicode 字符串首先就必须先将这个字符串转成非 unicode 字符串, 然后再进行解码。按照普通的办法进行 encode 肯定是不行的,因为这不是一个正确的 unicode 字符串:

In [1]: u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('utf8')
Out[1]: '\xc3\xa4\xc2\xbd\xc2\xa0\xc3\xa5\xc2\xa5\xc2\xbd'

In [2]: print u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('utf8')
盲陆聽氓楼陆
那如何才能得到我们想要的 \xe4\xbd\xa0\xe5\xa5\xbd 呢?

python 提供了一个特殊的编码( raw_unicode_escape )用来处理这种情况:

In [4]: u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('raw_unicode_escape')
Out[4]: '\xe4\xbd\xa0\xe5\xa5\xbd'

In [5]: u'\xe4\xbd\xa0\xe5\xa5\xbd'.encode('raw_unicode_escape').decode('utf8')
Out[5]: u'\u4f60\u597d'

In [7]: print u'\u4f60\u597d'
你好

以上这篇python去掉 unicode 字符串前面的u方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中的单引号双引号区别知识点总结

python中的单引号双引号有什么区别呢?下面给大家详细的介绍一下: 先说双引号与三引号的区别,双引号所表示的字符串通常要写成一行。 如: s1 = "hello,world" 如...

Python二维数组实现求出3*3矩阵对角线元素的和示例

题目:求一个3*3矩阵对角线元素之和。 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 def two_dimensionalArray(self):...

pytorch 实现tensor与numpy数组转换

看代码,tensor转numpy: a = torch.ones(2,2) b = a.numpy() c=np.array(a) #也可以转numpy数组 print(type(a...

使用python检测手机QQ在线状态的脚本代码

复制代码 代码如下:import time,datetime    import urllib2   def chk_qq(qqnum)...

python绘制彩虹图

python绘制彩虹图

本文实例为大家分享了python绘制彩虹图的具体代码,供大家参考,具体内容如下 from turtle import * #控制彩虹路径 def path(pen, r, g,...