如何解码存储在 python3 变量中的非 b 前缀字符串,如 '\xd0\xbc'?
How to decode non-b-prefixed string like '\xd0\xbc' stored in variable in python3?
我有一些来自 API 的变量。
例如:
a == '\xd0\xbc'
我需要解码a得到变量b:
b == 'М'
但是我不能写这样的代码:
a = b'\xd0\xbc'
b = a.decode()
因为此文本 (\xd0\xbc) 已经在变量中。
这会有帮助吗?我想有更好的方法,但我不知道
>>> a = r'\xd0\xbc'
>>> b = 'b"{}"'.format(a)
>>> c = eval(b)
>>> d = c.decode()
>>> d
'\u043c'
您需要使用 str.encode()
并传递 encoding="latin"
以获得 b == 'M'
。
a = str.encode('\xd0\xbc', 'latin')
b = a.decode()
print(b)
如果 "latin"
不是您要查找的标准编码,try others。
我有一些来自 API 的变量。 例如:
a == '\xd0\xbc'
我需要解码a得到变量b:
b == 'М'
但是我不能写这样的代码:
a = b'\xd0\xbc'
b = a.decode()
因为此文本 (\xd0\xbc) 已经在变量中。
这会有帮助吗?我想有更好的方法,但我不知道
>>> a = r'\xd0\xbc'
>>> b = 'b"{}"'.format(a)
>>> c = eval(b)
>>> d = c.decode()
>>> d
'\u043c'
您需要使用 str.encode()
并传递 encoding="latin"
以获得 b == 'M'
。
a = str.encode('\xd0\xbc', 'latin')
b = a.decode()
print(b)
如果 "latin"
不是您要查找的标准编码,try others。