欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-10 22:14:56
有时我们会碰到类似下面这样的 unicode 字符串: u'\xe4\xbd\xa0\xe5\xa5\xbd' 这明显不是一个正确的 unicode 字符串...

有时我们会碰到类似下面这样的 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方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。