背景
前端调用合约接口时报错
问题
前端调用合约接口,正常应该返回字符串,但是先是报错Uncaught Error: Invalid UTF-8 detected
,重新部署合约后再调用又报如下的错误Uncaught Error: Invalid continuation byte
解决
只有一台电脑出现这个问题以为是这台电脑浏览器的问题,但是网上搜索不到相关的答案,只有solidity语言中bytes和string的转换问题,所以还是从代码中找原因。
发现调接口传入的参数是string类型,但我在合约中定义方法的时候形参的类型我直接用了bytes,再返回的时候又用string转化了一遍。问题出在应该形参使用string类型,然后用bytes转换存储起来,这样返回给客户端的就直接用string类型的形参变量就好了。