如何在Python(3)中从Unicode字符串中打印Unicode转义序列?

6
例如,如果我的字符串包含“नमस्ते”,我如何打印字符串中每个字母的Unicode转义序列。
2个回答

8
如果你想让每个字符都有\u转义(这是在纯ASCII Python代码中重新定义字符串的输入方式),可以使用unicode-escape编解码器
>>> 'नमसत'.encode('unicode-escape')
b'\\u0928\\u092e\\u0938\\u0924'

如果需要将其转换为str,而不是bytes,请将其解码回ASCII(并通过打印删除引号和双倍反斜杠显示):
>>> print('नमसत'.encode('unicode-escape').decode('ascii'))
\u0928\u092e\u0938\u0924

看起来你少输了几个字符。对于 OP 的字符串 'नमस्ते',我得到了 b'\\u0928\\u092e\\u0938\\u094d\\u0924\\u0947' - PM 2Ring
@PM2Ring:唉,愚蠢的终端不支持这些字符,可能在复制和粘贴时丢失了。我希望原帖作者能理解我的意思。 :-) - ShadowRanger
谢谢您的回答!我有一个问题,是否有任何方法可以将单独的Unicode转义序列映射到其UTF-8符号? - sudha

4
>>> s = "नमस्ते"
>>> s.encode('utf-8')
b'\xe0\xa4\xa8\xe0\xa4\xae\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x87'
>>> s.encode('unicode-escape')
b'\\u0928\\u092e\\u0938\\u094d\\u0924\\u0947'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接