gpt4 book ai didi

node.js - 如何让 Mocha 测试编译 Ruby-ish Unicode 字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:34 25 4
gpt4 key购买 nike

我正在从 Node.js 应用程序调用 Telegram Bot API。我需要向 API 发送一些 Unicode 字符,该 API 只接受 Ruby 格式(\u{1F680} 输出 🚀 )。我将此格式的所有 Unicode 字符存储在实际向 API 发送消息的人所需的文件中。

Node.js 对此没问题,工作正常。但是,当我对相同的代码运行 Mocha 测试时,会导致 Unexpected token ILLEGAL 错误,它不喜欢 Ruby Unicode 格式。测试本身甚至没有使用这个 Unicode 字符,编译失败了。

emojis.rocket = '\u{1F680}';
^^^
SyntaxError: Unexpected token ILLEGAL
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/path/to/file/values_es.js:1:76)
// more error lines...
npm ERR! Test failed. See above for more details.

如果我将其更改为 JavaScript Unicode 格式 (\u1F680),Mocha 和 Node.js 可以接受,但 API 无法将其获取为适当的字符。

我尝试过以下方法:

  • 以 JavaScript 格式存储 \u1F680,然后在运行时添加 {},但它会输出不同的字符 (Ὠ0),对应于前四个十六进制值 (\u1F68) 和额外的 0
  • 以 JavaScript 格式存储 \u1F680 并添加编码 Ruby 函数 code.encode('UTF-8') 以防 Telegram Bot API 执行 Ruby 代码。也不工作,它打印 \u1F680.encode('UTF-8')

有什么方法可以让 Mocha 接受 Ruby-ish (\u{1F680}) 格式吗?

最佳答案

使用 RegExp 构造函数将其通过 mocha 测试:

RegExp('\u{1F680}')

然后使用exectoString将其转换为字符串:

RegExp('\u{1F680}').exec('\u{1F680}').toString()

引用文献

关于node.js - 如何让 Mocha 测试编译 Ruby-ish Unicode 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33110039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com