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'

完整而漂亮的解释~谢谢。完整而漂亮的解释~谢谢。易于理解。非常感谢~很容易理解。非常感谢~