繁体   English   中英

在 nodejs 中将货币符号写入文件的问题

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM