javascript - 在nodejs中将货币符号写入文件时出现问题

标签 javascript node.js

我正在尝试写入文件:

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/

相关文章:

javascript - 在 ES6 synthax 中,如何使用变量键进行命名导出?

node.js - Mongo : create if document doesn't exist, 否则什么也不做

node.js - 同步 Mongoose 请求

node.js - Redis 建模保留

javascript - 在 JavaScript 中 : Syntax difference between function & method definition within a class

javascript - 如何启动可以访问 node.js 中的局部变量的 REPL?

javascript - 如何在 jQuery 小部件中使用动态属性值

javascript - 外部加载的目标元素

javascript - anchor 标签自动上传文件场景

node.js - 余额转账示例的invoke-transaction.js中的交易ID响应有什么用?