Python 2.7将%(百分比)替换为\(斜杠),但得到\(双斜杠)
我想要这个结果:Python 2.7将%(百分比)替换为\(斜杠),但得到\(双斜杠),python,python-2.7,replace,slash,Python,Python 2.7,Replace,Slash,我想要这个结果: u'\ue8fc\x82' >>> a='\ue8fc\u0082' >>> a '\\ue8fc\\u0082' >>> print a \ue8fc\u0082 >>> unicode(a) u'\\ue8fc\\u0082' >>> unicode(a).replace('\\\\','\\') u'\\ue8fc\\u0082' >>> repr(un
u'\ue8fc\x82'
>>> a='\ue8fc\u0082'
>>> a
'\\ue8fc\\u0082'
>>> print a
\ue8fc\u0082
>>> unicode(a)
u'\\ue8fc\\u0082'
>>> unicode(a).replace('\\\\','\\')
u'\\ue8fc\\u0082'
>>> repr(unicode(a).replace('\\\\','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> repr(unicode(b).replace('\\','?'))
"u'?ue8fc?u0082'"
>>> repr(unicode(b).replace('\\','?').replace('?','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> u'\ue8fc\u0082'
u'\ue8fc\x82'
>>> repr(u'\ue8fc\u0082')
"u'\\ue8fc\\x82'"
但它总是让我:
u'\\ue8fc\\u0082'
示例1:
u'\ue8fc\x82'
>>> a='\ue8fc\u0082'
>>> a
'\\ue8fc\\u0082'
>>> print a
\ue8fc\u0082
>>> unicode(a)
u'\\ue8fc\\u0082'
>>> unicode(a).replace('\\\\','\\')
u'\\ue8fc\\u0082'
>>> repr(unicode(a).replace('\\\\','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> repr(unicode(b).replace('\\','?'))
"u'?ue8fc?u0082'"
>>> repr(unicode(b).replace('\\','?').replace('?','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> u'\ue8fc\u0082'
u'\ue8fc\x82'
>>> repr(u'\ue8fc\u0082')
"u'\\ue8fc\\x82'"
示例2:
u'\ue8fc\x82'
>>> a='\ue8fc\u0082'
>>> a
'\\ue8fc\\u0082'
>>> print a
\ue8fc\u0082
>>> unicode(a)
u'\\ue8fc\\u0082'
>>> unicode(a).replace('\\\\','\\')
u'\\ue8fc\\u0082'
>>> repr(unicode(a).replace('\\\\','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> repr(unicode(b).replace('\\','?'))
"u'?ue8fc?u0082'"
>>> repr(unicode(b).replace('\\','?').replace('?','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> u'\ue8fc\u0082'
u'\ue8fc\x82'
>>> repr(u'\ue8fc\u0082')
"u'\\ue8fc\\x82'"
我为什么需要这个:
u'\ue8fc\x82'
>>> a='\ue8fc\u0082'
>>> a
'\\ue8fc\\u0082'
>>> print a
\ue8fc\u0082
>>> unicode(a)
u'\\ue8fc\\u0082'
>>> unicode(a).replace('\\\\','\\')
u'\\ue8fc\\u0082'
>>> repr(unicode(a).replace('\\\\','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> repr(unicode(b).replace('\\','?'))
"u'?ue8fc?u0082'"
>>> repr(unicode(b).replace('\\','?').replace('?','\\'))
"u'\\\\ue8fc\\\\u0082'"
>>> u'\ue8fc\u0082'
u'\ue8fc\x82'
>>> repr(u'\ue8fc\u0082')
"u'\\ue8fc\\x82'"
我想转身
“%ue8fc%u0082”
进入
“\ue8fc\u0082”
用于表示Unicode字符的反斜杠不是字符串的一部分,不能使用
str.replace
进行操作。但是,可以使用“unicode_escape”编码将带有“real”反斜杠的字符串转换为转义字符串:
>>> s = "%ue8fc%u0082"
>>> s.replace("%", "\\").decode("unicode_escape")
u'\ue8fc\x82'
用于表示Unicode字符的反斜杠不是字符串的一部分,不能使用
str.replace
进行操作。但是,可以使用“unicode_escape”编码将带有“real”反斜杠的字符串转换为转义字符串:
>>> s = "%ue8fc%u0082"
>>> s.replace("%", "\\").decode("unicode_escape")
u'\ue8fc\x82'
这是正确的
\\
表示单个反斜杠。这是字符串的unicode转义
d版本
使用以下代码可转换为标准字符串:
>>> import codecs
>>> codec.decode("\\ue8fc\\u0082", "unicode-escape")
'\ue8fc\x82'
这是正确的
\\
表示单个反斜杠。这是字符串的unicode转义
d版本
使用以下代码可转换为标准字符串:
>>> import codecs
>>> codec.decode("\\ue8fc\\u0082", "unicode-escape")
'\ue8fc\x82'
完整而漂亮的解释~谢谢。完整而漂亮的解释~谢谢。易于理解。非常感谢~很容易理解。非常感谢~