飘逸的python

 
有时候我们从其它地方接受的字符串经过艰难跋涉,它变了个样。比如收到的是'u6253u602au8005'而不是u'u6253u602au8005'。
明明肉眼看起来只需要加个u,但是怎么加呢?
>>s = 'u6253u602au8005'
>>s
'\u6253\u602a\u8005'
>>'u'+s
'u\u6253\u602a\u8005'

 
这样不行。
而且表面看起来是'u6253u602au8005',其实内部是'\u6253\u602a\u8005',就是转义了反斜杠,有2个斜杠,而我要的是u而不是 \u
这时喜欢用黑魔法的可能会想到eval。
>>eval('u"'+s+'"')
u'u6253u602au8005'
>>print eval('u"'+s+'"')
打怪者

 
嗯,没错,用eval可以。不过这样实现太蛋疼了。
python就自带了解决方法。就是 unicode-escape
>>unicode(s,'unicode-escape')
u'u6253u602au8005'

 
另外,还有个跟unicode-escape齐名的东西,叫 string-escape。它的作用可以说是“去掉转义,把2个反斜杠变成1个”。看例子。
>>s = 'hello\nworld'
>>s
'hello\nworld'
>>s.decode('string-escape')
'hello world'

原文地址:https://www.cnblogs.com/pangblog/p/3246641.html