如何将unicode原始文本解码为可读字符串?

2024-04-26 04:10:58 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我将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
Сообщение отправлено

但是,当我已经将值分配给一个普通的,而不是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

我如何解码和阅读?


Tags: unicodeprintu0431u0430u043du0438u0442u043f
2条回答

如果解码时出现奇怪的结果,请尝试以下操作

print repr(s).decode('unicode-escape').encode('latin-1') // or encode using some other encoding

可能是python终端正在使用默认的ASCII,并且有超出范围的符号。

使用unicode_escape codec

s.decode('unicode_escape')

相关问题 更多 >