在Node.js中将文件转换为UTF-8文件

Mar*_*tin 3 javascript encoding json utf-8 node.js

我是JavaScript和Node.js的新手。因此,我有一个JSON文件,我想将此文件编码为UTF-8 JSON文件。Node.js怎么可能?

源JSON文件由另一个框架生成,并且可能包含BOM,但是我需要一个没有BOM的UTF-8 JSON文件来处理它。

ski*_*laa 6

var fs = require('fs');
const detectCharacterEncoding = require('detect-character-encoding'); //npm install detect-character-encoding
var buffer = fs.readFileSync('filename.txt');
var originalEncoding = detectCharacterEncoding(buffer);
var file = fs.readFileSync('filename.txt', originalEncoding.encoding);
fs.writeFileSync('filename.txt', file, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?

fs读取文件时,它将文件的编码转换为JS使用的格式。

之后,在fs写入文件时,它将JS存储的字符串转换为UTF-8并将其写入文件。