[英]Issues writing currency symbols to file in nodejs
我正在尝试写入文件:
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: Egyptian 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);
我不确定为什么会这样。 根据文档,节点默认支持 UTF-8 编码
我能发现这种事情发生的唯一原因是,如果您的 JS 文件不是用 UTF8 编码的文件。
确保JS文件保存为UTF8编码,这样你脚本中的字符串就可以保存为对应的编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.