You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何将比特币创世区块十六进制字符串正确转换为ASCII/UTF-8字符串?转换结果不符预期的问题求助

如何将比特币创世区块十六进制字符串正确转换为ASCII/UTF-8字符串?转换结果不符预期的问题求助

嘿,我来帮你搞定这个问题~你现在转出来的内容不对,核心原因是拿错了十六进制字符串

你之前用的那段长十六进制,是比特币创世区块里的公钥数据,不是包含报纸头版文本的那部分。创世区块的coinbase交易里,藏着那句报纸标题的是另一段十六进制。

给你一步步解决:

  1. 先拿到正确的十六进制字符串:
04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73
  1. 用这段正确的十六进制跑Python代码:
# 创世区块中对应报纸文本的十六进制
correct_hex = "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73"
bytes_data = bytes.fromhex(correct_hex)
# 直接解码为ASCII即可,因为内容都是ASCII字符
result = bytes_data.decode("ascii")
print(result)
  1. 运行后你就能看到期望的结果:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

额外补充下:这段十六进制的前半部分04ffff001d0104是coinbase脚本的前缀(属于脚本操作码),转出来是不可见的控制字符,但后面的部分就是报纸标题的ASCII编码。如果你只想转标题文本,也可以直接取从45开始的那段十六进制(对应第一个字符'E'),解码结果是一样的。

这下就能得到你想要的内容啦😉

火山引擎 最新活动