【问题标题】:Solidity - Invalid character in stringSolidity - 字符串中的无效字符
【发布时间】: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.

基本上它不喜欢ç 和Ã,但我需要这些以及未来的é、ô 字符等。

提前致谢

【问题讨论】:

    标签: ethereum solidity remix


    【解决方案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() 的行为不同,这就是我强调差异的原因。
    猜你喜欢
    • 2021-09-02
    • 2017-07-31
    • 2015-11-16
    • 2017-02-02
    • 1970-01-01
    • 2011-03-04
    • 2013-12-20
    • 1970-01-01
    相关资源
    最近更新 更多