我想要一个字符串,如:
'\\xeb\\x4d'
并将其转换为:
b'\xeb\x4d'
如果我这样做:
bytes('\\xeb\\x4d', 'utf-8')
我明白了:
b'\\xeb\\x4d'
我需要做以下事情:
something('\\xeb\\x4d') == b'\xeb\x4d'
答案 0 :(得分:1)
a = '\\xeb\\x4d'
a = bytes(a, 'utf-8')
a = a.decode('unicode_escape').encode('latin1')
给出
b'\xebM'
,因为
'\x4d' == 'M'
答案 1 :(得分:1)
>>> a = '\\xeb\\x4d' # a Unicode string
>>> a.encode('latin1') # get a byte string
b'\\xeb\\x4d'
>>> a.encode('latin1').decode('unicode_escape') # unescape, get a Unicode string
'ëM'
>>> a.encode('latin1').decode('unicode_escape').encode('latin1') # get a byte string
b'\xebM'
>>> a.encode('latin1').decode('unicode_escape').encode('latin1') == b'\xeb\x4d'
True
请注意,latin1
是Unicode的前256个代码点,因此对Unicode的前256个字节进行编码会得到与原始代码点相同的字节值。