我正在尝试写入文件:
private async writeToFile(data: any) {
try {
fs.writeFile(filePath as string, JSON.stringify(data), 'utf8', (error: any) => {
if (error) {
logger.error(`[JSON] Error while saving file : ${error}`);
}
logger.info('The file has been saved!');
});
} catch (error) {
logger.error(`[JSON] Error while saving file : ${error}`);
}
}
其中数据有:
var data = [{label:'Egyptian Pound £', value: 'E£'}, {"label":"Albanian Lek-AL","value":"AL"}];
当我写入文件时,字符保存为 {label: Egypt Pound E�, value: E�}
数据数组是根据服务器返回的多行字符串创建的:
Egyptian Pound|E£
Albanian Lek|AL
创建数据数组的代码:
const currencyArr = response
.split('\n')
.map(val => val.trim())
.reduce((arr, currencyString) => {
arr.push({
label: currencyString.split('|')[0] + '-' + currencyString.split('|')[1],
value: currencyString.split('|')[1]
});
return arr;
}, []);
this.writeToFile(currencyArr);
我不确定为什么会发生这种情况。根据文档, Node 默认支持 UTF-8 编码
最佳答案
我发现这种情况发生的唯一原因是你的 JS 文件不是用 UTF8 编码的。
确保JS文件以UTF8编码保存,这样脚本中的字符串才能保存为相应的编码。
关于javascript - 在nodejs中将货币符号写入文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893823/