首页 > 解决方案 > JS UTF-8 解码问题:不推荐使用以“0”为前缀的八进制文字和八进制转义序列;对于八进制文字,请改用“0o”前缀

问题描述

我一直在努力尝试完成这项工作,感谢您的帮助。

我基本上有一个可能看起来像这样“jas\303\241nek”的字符串,我想把它转换成一个看起来像这样的字符串“jasánek”。我已经使用 [this site] https://mothereff.in/utf-8成功地将字符串解码为所需的输出,并希望将其集成到我的网站中。该站点使用我一直在尝试使用的 npm 包utf8 。看起来像这样编写代码不足以进行翻译:

const utf8 = require('utf8')
let string = "jas\303\241nek"
let translation = utf8.decode(string);
console.log(translation)

看到这只返回了原始字符串,我意识到功能不是我想象的那样,所以我深入研究了初始翻译站点的代码,发现它使用了以下语法:

utf8.decode(eval('\'' + encoded.value + '\''));

所以我尝试实现这样的一些变体:

const utf8 = require('utf8')
let string = "jas\303\241nek"
let translation = utf8.decode(eval('\'' + string + '\'');
console.log(translation)

它返回一个我不明白的错误:

SyntaxError: "0"-prefixed octal literals and octal escape sequences are deprecated; for octal literals use the "0o" prefix instead

现在我被困住了。关于如何解决这个问题的任何建议?

标签: javascriptreactjsnpmutf-8

解决方案


所以问题最终是试图在前端使用库进行 utf8 翻译。我在尝试 console.log 示例字符串并取回字符串而不是符号的值时发现了这一点。

为了解决这个问题,我在将它发送到前端的快递服务器上进行了 utf8 翻译,这解决了问题。

谢谢大家的建议。


推荐阅读