8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何将 base64 字符串解码为 utf-8

Shaytj 1月前

47 0

我正在使用 solana 区块链 api 中的 programSubscribe 方法。收到信息后,我必须转换 base-64 字符串,但出于某种原因,我总是收到错误。以下是响应

我正在使用 solana 区块链 api 中的 programSubscribe 方法。收到信息后,我必须转换 base-64 字符串,但由于某种原因,我总是收到错误。

以下是来自 api 的响应:

{
  "jsonrpc": "2.0",
  "method": "programNotification",
  "params": {
    "result": {
      "context": {
        "slot": 289759455
      },
      "value": {
        "pubkey": "DjyaRfgXKCpUP2fqh5SGX2yk7jEpcXbJVJWjLj1DFzKu",
        "account": {
          "lamports": 6124800,
          "data": [
            "BgAAAAAAAAD+AAAAAAAAAAcAAAAAAAAAAwAAAAAAAAAJAAAAAAAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAADKmjsAAAAA9AEAAAAAAABAS0wAAAAAAADKmjsAAAAAgJaYAAAAAAABAAAAAAAAAADKmjsAAAAAAMqaOwAAAAAFAAAAAAAAABAnAAAAAAAAGQAAAAAAAAAQJwAAAAAAAAwAAAAAAAAAZAAAAAAAAAAZAAAAAAAAABAnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5GoFmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJPt654sNzQbAAAAAAAAAADYQ9d0mgAAAAAAAAAAAAAAyraoTAAAAADQtZzHdwAAAAAAAAAAAAAAHfoyehJqdBUAAAAAAAAAAPc7URIZaREAOL2YtIrv7Pwe8s39gEvtRHH0l+h6F76wS/F7nk99MLBB04riU/VWv9iV3EMmqrwjEgtppdns2Thw2DGc2pLXiT4FfmTXP1Zjc3V/Gxt77nQUXks10F9W4q2egtxQDbU9BpuIV/6rgYT7aH9jRhjANdrEOdwa6ztVmKDwAAAAAAFfS70UI/tcML4CU/hCEijxdtoxoROPKlt1WXDkfFTa93CTgXtA4ugNA+mm9JZ4J8Lt+HHTuVaHJ/djZISi5XFJuAh9+mIHapi0CmQtkPoSKDgrkZPQi/8nh5u2DUdmRRENB1GoKC2mEwX+KZw3uZjlhHHbETUDcxD4vhBFpgr27gQoDeSV8Ut5Alieq10Xc6JiU/o2gz5ulPDaQDFdlOdnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOW2K2XLO72m9WiI5m/ujmTcVWAZnA+IsR/ic70FnoqhyE2gH8nuAAAAAAAAAAAAAJ4CAAAAAAAAAAAAAAAAAAA=",
            "base64"
          ],
          "owner": "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8",
          "executable": false,
          "rentEpoch": 18446744073709551615,
          "space": 752
        }
      }
    },
    "subscription": 79356
  }
}

以下是一个 Python 代码:

base64.b64decode(data['params']['result']['value']['account']['data'][0]).decode('utf-8')

原始字节就是这样的:

b"\x06\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x9a;\x00\x00\x00\x00\xf4\x01\x00\x00\x00\x00\x00\x00@KL\x00\x00\x00\x00\x00\x00\xca\x9a;\x00\x00\x00\x00\x80\x96\x98\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\xca\x9a;\x00\x00\x00\x00\x00\xca\x9a;\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x10'\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x10'\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x10'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x009\x1a\x81f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\xed\xeb\x9e,74\x1b\x00\x00\x00\x00\x00\x00\x00\x00\xd8C\xd7t\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xb6\xa8L\x00\x00\x00\x00\xd0\xb5\x9c\xc7w\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\xfa2z\x12jt\x15\x00\x00\x00\x00\x00\x00\x00\x00\xf7;Q\x12\x19i\x11\x008\xbd\x98\xb4\x8a\xef\xec\xfc\x1e\xf2\xcd\xfd\x80K\xedDq\xf4\x97\xe8z\x17\xbe\xb0K\xf1{\x9eO}0\xb0A\xd3\x8a\xe2S\xf5V\xbf\xd8\x95\xdcC&\xaa\xbc#\x12\x0bi\xa5\xd9\xec\xd98p\xd81\x9c\xda\x92\xd7\x89>\x05~d\xd7?Vcsu\x7f\x1b\x1b{\xeet\x14^K5\xd0_V\xe2\xad\x9e\x82\xdcP\r\xb5=\x06\x9b\x88W\xfe\xab\x81\x84\xfbh\x7fcF\x18\xc05\xda\xc49\xdc\x1a\xeb;U\x98\xa0\xf0\x00\x00\x00\x00\x01_K\xbd\x14#\xfb\\0\xbe\x02S\xf8B\x12(\xf1v\xda1\xa1\x13\x8f*[uYp\xe4|T\xda\xf7p\x93\x81{@\xe2\xe8\r\x03\xe9\xa6\xf4\x96x'\xc2\xed\xf8q\xd3\xb9V\x87'\xf7cd\x84\xa2\xe5qI\xb8\x08}\xfab\x07j\x98\xb4\nd-\x90\xfa\x12(8+\x91\x93\xd0\x8b\xff'\x87\x9b\xb6\rGfE\x11\r\x07Q\xa8(-\xa6\x13\x05\xfe)\x9c7\xb9\x98\xe5\x84q\xdb\x115\x03s\x10\xf8\xbe\x10E\xa6\n\xf6\xee\x04(\r\xe4\x95\xf1Ky\x02X\x9e\xab]\x17s\xa2bS\xfa6\x83>n\x94\xf0\xda@1]\x94\xe7g\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\xb6+e\xcb;\xbd\xa6\xf5h\x88\xe6o\xee\x8ed\xdcU`\x19\x9c\x0f\x88\xb1\x1f\xe2s\xbd\x05\x9e\x8a\xa1\xc8M\xa0\x1f\xc9\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

错误如下:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 8: invalid start byte

我尝试过像 jsonParsed 这样的 api 来解析信息。但它也向我发送了一个 base64 字符串。使用 base58 进行解析也不起作用,因为字符串太长了。

我不知道如何将其转换为 utf-8。请帮帮我

帖子版权声明 1、本帖标题:如何将 base64 字符串解码为 utf-8
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Shaytj在本站《python》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这些字节不是有效的 UTF-8,简单来说。它们看起来根本不像文本。或许可以看看

  • 所以我需要检查所有可能的\'小结尾整数:小结尾整数:6、254、7、3、9、9、...\'来检查其是否有意义?

  • 它看起来像二进制数据。开头可能是 64 位小整数序列:6、254、7、3、9、9、...如果这些值有意义,则

返回
作者最近主题: