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