【发布时间】:2017-12-29 07:01:24
【问题描述】:
获取字符Ä的unicode点。
Python3 版本。
>>> str="Ä"
>>> str.encode("unicode-escape")
b'\\xc4'
如何获得单个反斜杠格式 b'\xc4' 而不是 b'\\xc4' 作为我的输出?
【问题讨论】:
标签: python-3.x unicode
获取字符Ä的unicode点。
Python3 版本。
>>> str="Ä"
>>> str.encode("unicode-escape")
b'\\xc4'
如何获得单个反斜杠格式 b'\xc4' 而不是 b'\\xc4' 作为我的输出?
【问题讨论】:
标签: python-3.x unicode
我并不完全清楚你想要什么,所以我会给你几个选择。
以整数形式获取字符的 (Unicode) 代码点:
>>> ord('Ä')
196
以十六进制显示整数:
>>> hex(ord('Ä'))
'0xc4'
或使用字符串格式:
>>> '{:X}'.format(ord('Ä'))
'C4'
但是,您谈论反斜杠并显示字节字符串b'\xc4'。
这是'Ä' 的Latin-1 编码(Unicode codepoint 低于256 的所有字符都可以用Latin-1 编码,并且它们的字节值等于Unicode codepoint)。
>>> 'Ä'.encode('latin-1')
b'\xc4'
这是一个长度为 1 的字节串。 它以您可以键入此字符的方式显示,即。使用带有反斜杠-x 和两位十六进制数字的转义序列。
“unicode-escape”编解码器产生这四个 ASCII 字符(\、x、c4),但不是作为str,而是作为bytes 对象(因为@987654333 @ 根据定义返回 bytes)。
要在 str/bytes 文字中获得反斜杠,您需要键入两个反斜杠,因此 representation 表单也使用两个反斜杠:
>>> 'Ä'.encode('unicode-escape')
b'\\xc4'
“unicode-escape”编解码器是 Python 特有的,我没有看到很多应用程序;也许如果你想编写自己的 pickle 协议或解析 Python 源代码片段。
【讨论】: