为了账号安全,请及时绑定邮箱和手机立即绑定

python将十六进制字符串编码/解码为utf-8字符串

python将十六进制字符串编码/解码为utf-8字符串

红颜莎娜 2023-05-09 09:57:08
我试图在 python 中解码十六进制字符串。value = ""for i in "54 C3 BC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61".split(" "):  value += chr(int(i, 16))print(value)结果:开门气候预期结果应该是“Tür offen Klima” 我怎样才能使它正常工作?
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您的数据被编码为 UTF-8,这意味着您有时必须查看多个字节才能获得一个字符。最简单的方法可能是将字符串解码为字节序列,然后将这些字节解码为字符串。Python 具有以下两者的内置功能:

value = bytes.fromhex("54 C3 BC").decode("utf-8")


查看完整回答
反对 回复 2023-05-09
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

问题是字符串的结果


"54 C3 BC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61"


确实是


开门气候


导致“Tür offen Klima”的正确十六进制字符串实际上是:


"54 FC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61"


因此,下面的代码将生成您期望的结果:


value = ""

for i in "54 FC 72 20 6F 66 66 65 6E 20 4B 6C 69 6D 61".split(" "):

    value += chr(int(i, 16))

print(value)


查看完整回答
反对 回复 2023-05-09
  • 2 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信