[英]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.