【发布时间】:2021-12-29 18:31:34
【问题描述】:
我有一个整数,我按如下方式转换为十六进制:
int_N = 193402
hex_value = hex(int_N)
它给了我以下十六进制:0x2f37a。
我想把十六进制转成字符串。
我试过了:
bytes.fromhex(hex_value[2:]).decode('ASCII')
# [2:] to get rid of the 0x
但是,它给了我这个错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 1: ordinal not in range(128)
然后我尝试使用 decode('utf-8') 而不是 ASCII,但它给了我这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 1: invalid start byte
有什么建议可以解决这个问题吗?为什么它没有将十六进制 '0x2f37a' 转换为字符串?
在阅读了一些文档之后,我认为十六进制可能应该包含偶数个数字以便转换为字符串,但我无法这样做或使它均匀,因为我正在使用 hex() 它给了我价值。
感谢并非常感谢任何帮助!
【问题讨论】:
-
hex_value[2:]不适合你吗? -
因为
type(hex_value)告诉我已经是str -
那里没有真正的问题。请说明您的要求。
-
@intedgarhex_value[2:] 有效,它给了我 2f37a。但是当我想获取字符串时它不起作用。
-
@VoNWooDSoN 如何将十六进制 0x2f37a 转换为字符串?
标签: python encryption utf-8 hex