从字面上将字符串转换为字节

Convert string to bytes literally

我想取一个字符串如:

'\xeb\x4d' 

并把它变成:

b'\xeb\x4d'

如果我这样做:

bytes('\xeb\x4d', 'utf-8')

我得到:

b'\xeb\x4d'

我需要执行以下操作的东西:

something('\xeb\x4d') == b'\xeb\x4d'
a = '\xeb\x4d'
a = bytes(a, 'utf-8')
a = a.decode('unicode_escape').encode('latin1')

给予

b'\xebM'

因为

'\x4d' == 'M'
>>> 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 个字节进行编码会得到与原始代码点相同的字节值。