将字节3转换为坚固性字符串
我需要创建函数将字节3转换为字符串。 在我的合同上,数据将保存到状态变量中。
我想为用户转换可变内容。
这是我的功能:
function convertByteToString() public view returns(string memory){
string memory result = string(symbol);
return result;
}
但是我会收到编译器错误:
typeerror:不允许从“ bytes3”到“字符串内存”的显式类型转换。
如何解决此错误?
I need to create function to convert byte3 to string.
On my contract, data is saved into a state variable.
I want to convert content of variable for user.
This is my function:
function convertByteToString() public view returns(string memory){
string memory result = string(symbol);
return result;
}
but I get a compiler error:
TypeError: Explicit type conversion not allowed from "bytes3" to "string memory".
How can this error be resolved?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要将 bytes3 转换为字符串您必须使用
abi.encodepacked(bytes3参数)
,此结果必须将其转换为字符串。通过此更改您的功能:
To convert bytes3 to string you must use the
abi.encodePacked(bytes3 parameter)
and this result you must convert it into a string.Change your function with this:
只能将动态长度的字节数组(Solidity Type
bytes
)输入到字符串中,但是您正在传递固定长度的字节数组(solidity typebytes3
)。使用
abi.encode()
将bytes3
转换为bytes
。Only a dynamic-length byte array (Solidity type
bytes
) can be typecasted to a string, but you're passing a fixed-length byte array (Solidity typebytes3
).Use
abi.encode()
to convert thebytes3
tobytes
.