有时我们会碰到类似下面这样的 unicode 字符串:
1
|
u '\xe4\xbd\xa0\xe5\xa5\xbd'
|
这明显不是一个正确的 unicode 字符串,可能是在哪个地方转码转错了。
我们要想得到正确的 unicode 字符串首先就必须先将这个字符串转成非 unicode 字符串, 然后再进行解码。按照普通的办法进行 encode 肯定是不行的,因为这不是一个正确的 unicode 字符串:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_33020901/article/details/78391789