/ Ako kódovať znak Unicode v NodeJS - node.js, unicode, fs

Ako zakódovať znak unicode v NodeJS - node.js, unicode, fs

Používam NodeJS na čítanie série kľúčov a hodnôt z tabuľky na vytvorenie objektu JSON a potom tento objekt zapíšem do súboru, napr. | kľúč | hodnota | sa stáva objektom {"key": "value"}

Používam JSON.stringify na prevod objektov na reťazce a zápis tohto reťazca do súboru

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

Tabuľka obsahuje niektoré znaky unicode, ktoré je potrebné uložiť ako ich kódovanú hodnotu, napr. é ako u00E9, s ktorým úryvok vyššie nespracováva.

Ako môžem kódovať znaky unicode v súbore, napríklad „Numéro“ sa uloží ako „Numu00E9ro“

odpovede:

1 pre odpoveď č. 1

Na zakódovanie reťazca znakov môžete použiť doplnok, alebo to môžete urobiť ručne pomocou jednoduchého regulárneho výrazu:

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;

}