我之前询问过将uint转换为十六进制字符串。现在我想要将一个16进制值
我尝试了这个
0x00ff08
存储到一个bytes3
变量中,并能够在Solidity智能合约中将其转换为string
。随后,我打算在至少使用0.8.0版本的Solidity编译器上将其部署到RSK。我尝试了这个
string(abi.encodePacked(bytes3(0x00ff08
)))
但它抛出了运行时错误。
无法解码输出:null:偏移量1处的无效代码点;坏代码点前缀(argument="bytes",value={"0":0,"1":255,"2":8},code=INVALID_ARGUMENT,version=strings/5.4.0)
一个不同的参数 string(abi.encodePacked(bytes3(
0x443322
)))
不会导致错误,但会返回一个非常奇怪的结果D3"
。这里可能出了什么问题?如何将bytes3
转换为具有相同字符的string
?