转换u'\xe0&x27;至'\u00E0';在Python2.x中?

转换u'\xe0&x27;至'\u00E0';在Python2.x中?,python,unicode,python-2.x,Python,Unicode,Python 2.x,在Python2.x中,如何将unicode字符串(例如,u'\xe0')转换为字符串(这里我需要它是'\u00E0') 让它更清楚。我确实希望有长度为6的字符串'\u00E0'。也就是说,¥u被视为2个字符而不是一个转义字符。\u在Python 2中不作为字符串转义序列存在 您可能指的是JSON编码的字符串: >>> s = u'\xe0' >>> import json >>> json.dumps(s) '"\\u00e0"' >

在Python2.x中,如何将unicode字符串(例如,
u'\xe0'
)转换为字符串(这里我需要它是
'\u00E0'


让它更清楚。我确实希望有长度为6的字符串
'\u00E0'
。也就是说,
¥u
被视为2个字符而不是一个转义字符。

\u
在Python 2中不作为字符串转义序列存在

您可能指的是JSON编码的字符串:

>>> s = u'\xe0'
>>> import json
>>> json.dumps(s)
'"\\u00e0"'
>>> s.encode("utf-16-be")
'\x00\xe0'
或UTF-16(大端)编码字符串:

>>> s = u'\xe0'
>>> import json
>>> json.dumps(s)
'"\\u00e0"'
>>> s.encode("utf-16-be")
'\x00\xe0'
但你最初的要求无法满足

另请注意,
u'\u00e0'
u'\xe0'
相同,但
'\u00e0'
不存在:

>>> u'\u00e0'
u'\xe0'

\u
在Python中不是可识别的转义序列。您是否正在创建UTF-16编码字符串或JSON字符串?如果您在此处出错,并且希望从u'\xE0'中使用(u'\u00E0')而不是('\u00E0'),则不应执行任何操作,因为它们是相同的字符串。因此,请澄清这是否是有意的并且没有错误。您是否需要与unicode文本(
u'…
)相同的
r'\u00E0'
)转义码
\u00E0
\xe0
产生完全相同的码点。没有区别。Python在使用
repr()
时,对U+0000-U+00FF范围内的代码点使用后一种形式(当超出可打印的ASCII范围时),但它是相同的代码点。
\U
是转义序列,请参见@JanneKarila:Right,但仅在Unicode对象中,而不是字符串中。我应该说得更具体一些。