【发布时间】:2019-06-04 09:53:54
【问题描述】:
我在 java 中使用 web3j 来获取交易的输入数据。我可以得到数据,但问题是如何解码这些数据。
输入数据: “0x070ec83b000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000015118f200000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000 ..........” P>
String inputdata = null;
Optional<Transaction> tx = web3.ethGetTransactionByHash(txHash).send().getTransaction();
if (tx.isPresent()) {
inputdata = tx.get().getInput();
}
//DECODE
byte[] bytes = Hex.decodeHex(inputdata.substring(2).toCharArray());
System.out.println(new String(bytes, "UTF-8"));
当你执行代码时,你得到的是各种字符。
【问题讨论】:
-
可能是编码错误。试试其他的,比如 US-ASCII。也就是说,试试这个 System.out.println(new String(bytes, "US-ASCII"))
-
我按照你的建议做了,我得到了这个“È;
Qò àà`1juan12.456.123-9Inacap45.566.963-8 odontologo0xasdasetcdasdaetc120920198232358”:/