如何解码unicode原始文字到可读字符串?

gen*_*nad 24 python string unicode encoding unicode-literals

如果我将unicode原始文字分配给变量,我可以读取它的值:

>>> s =  u'\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e'
>>> s
u'\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e'
>>> print s
????????? ??????????
Run Code Online (Sandbox Code Playgroud)

但是当我已经为普通字符串而不是unicode字符串赋值时,我不能:

>>> s =  '\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e'
>>> s
'\\u0421\\u043e\\u043e\\u0431\\u0449\\u0435\\u043d\\u0438\\u0435 \\u043e\\u0442\\u043f\\u0440\\u0430\\u0432\\u043b\\u0435\\u043d\\u043e'
>>> print s
\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e
Run Code Online (Sandbox Code Playgroud)

我该如何解码和阅读?

Udi*_*Udi 32

使用unicode_escape编解码器:

s.decode('unicode_escape')
Run Code Online (Sandbox Code Playgroud)

  • (原因是'\ uXXXX'在非Unicode字符串文字中是*verbatim*.) (3认同)