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 中的字符串数组

你如何比较 Solidity 中的字符串?

Solidity字符串类型

将字符串作为参数传递时出错(Solidity)

solidity二固定长度数组动态长度数组字符串之间的转换solidity字典hash表的使用solidity——memorystorage使用注意项solidity状态变量局部变量