Solidity - 字符串中的无效字符
Posted
技术标签:
【中文标题】Solidity - 字符串中的无效字符【英文标题】:Solidity - Invalid character in string 【发布时间】:2021-07-22 22:32:49 【问题描述】:我正在开发一个 Solidity ERC20 智能合约,该合约需要来自拉丁国家/地区的措辞。 我正在使用 Remix ETH 在线 IDE
如何在不让编译器对我大喊大叫的情况下添加特殊字符?
目前:
string public responsavel = "Estado de SÃO PAULO Coçar";
此错误为:ParserError: Invalid character in string.
基本上它不喜欢ç
和Ã
,但我需要这些以及未来的é
、ô
字符等。
提前致谢
【问题讨论】:
【参考方案1】:您可以使用 UTF-8 序列
string public responsavel = "Estado de S\xC3\x83O PAULO Co\xC3\xA7ar";
【讨论】:
谢谢您-您能否指出一个在线资源,在那里我可以找到更多适用于其他用例的 UTF-8 序列?一旦我将此合约扔到 BSCScan 或 EtherScan 上进行验证,这也会以人类可读的方式编译吗? 这是我在 Google 上找到的第一个转换器 - mothereff.in/utf-8 ... 由于 BSCScan 和 EtherScan 以 UTF-8 对页面的其余部分进行编码,因此可以正确显示。但是其他不使用 UTF-8 的资源会意外显示(取决于它们使用的编码)。 非常感谢 - 对于这样一个新手问题感到抱歉 - 但 Solidity 中的console.log()
是什么?我正在尝试在 Remix IDE 上记录值。
Solidity 合约本身没有任何 UI(甚至没有)控制台,因此设计上没有 print()
或 console.log()
。但是,您可以使用事件日志,例如 - imgur.com/a/AwFvgby
您可以在我的示例中看到事件日志 - imgur.com/a/JRiHUfe ...它与 JS console.log()
的行为不同,这就是我强调差异的原因。以上是关于Solidity - 字符串中的无效字符的主要内容,如果未能解决你的问题,请参考以下文章
solidity二固定长度数组动态长度数组字符串之间的转换solidity字典hash表的使用solidity——memorystorage使用注意项solidity状态变量局部变量