如何在 NodeJS 中编码一个 unicode 字符

How to encode a unicode character in NodeJS

我正在使用 NodeJS 从电子表格中读取一系列键和值以构建 JSON 对象,然后将该对象写入文件,例如|||成为对象{"key":"value" }

我正在使用 JSON.stringify 将对象转换为字符串,然后将此字符串写入文件

fs.writeFileSync('object.json', JSON.stringify(object, null, 2));

电子表格包含一些 unicode 字符,需要将其存储为编码值,例如é 作为 \u00E9,上面的代码片段没有处理它。

如何对文件中的 unicode 字符进行编码,例如,"Numéro" 存储为 "Num\u00E9ro"

您可以使用插件来编码您的 char 字符串,或者您可以使用简单的正则表达式手动完成:

exports.unicodeAccent = function(str)
{
var charset = [
    "€",
    "À",
    "Á",
    "Â",
    "Ã",
    "Ä",
    "Å",
    "à",
    "á",
    "â",
    "ã",
    "ä",
    "å",
    "Ò",
    "Ó",
    "Ô",
    "Õ",
    "Õ",
    "Ö",
    "Ø",
    "ò",
    "ó",
    "ô",
    "õ",
    "ö",
    "ø",
    "È",
    "É",
    "Ê",
    "Ë",
    "è",
    "é",
    "ê",
    "ë",
    "ð",
    "Ç",
    "ç",
    "Ð",
    "Ì",
    "Í",
    "Î",
    "Ï",
    "ì",
    "í",
    "î",
    "ï",
    "Ù",
    "Ú",
    "Û",
    "Ü",
    "ù",
    "ú",
    "û",
    "ü",
    "Ñ",
    "ñ",
    "Š",
    "š",
    "Ÿ",
    "ÿ",
    "ý",
    "Ž",
    "ž"
];

for(var i = 0; i < charset.length; i++)
{
    var code        = ("00000000"+(charset[i].charCodeAt(0).toString(16))).slice(-4);
    var unicodeStr  = "\u"+code;

    var re  = new RegExp(charset[i], "gm");
    str = str.replace(re, unicodeStr);

}

return str;

}