Python 的字符串字面量支持"\xNN" 十六进制字节值转义以及"\uNNNN" 和 "\UNNNNNNNN" Unicode 转义。
第一种形式用4位 十六进制数编码2字节(16位) 位字符码点
第二种形式用8位十六进制数编码4字节(32位)码点。
十六进制值0xCD和0xE8,是ASCII 的7位字符范围之外的两个特殊的声调字符,但是我们可以将其嵌入到Python 3.X 的str对象中
,因为str 支持Unicode:
>>> chr(0xc4)
'Ä'
>>> chr(0xe8)
'è'
>>> S = '\xc4\xe8'
>>> S
'Äè'
>>> S = '\u00c4\u00e8'
>>> S
'Äè'
>>> len(S)
2
注意在这样的Unicode 文本字符串字面量中,十六进制转义和Unicode 转义都表示一个Unicode码点值,而不是一个字节值。
十六进制转义x要求恰好两个十六进制数位(用于8位的码点值)。而Unicode 转义的u和U分别要求4个和8个十六进制数位。
想要表示16位和32位这样大的码点值,可以这样写:
>>> S = '\U000000c4\U000000e8'
>>> S
'Äè'
>>>
标签:十六进制,字节,Python,转义,码点值,Unicode,字符串
From: https://www.cnblogs.com/czzz/p/17520569.html