【问题标题】:Convert a file to a UTF-8 file in Node.js在 Node.js 中将文件转换为 UTF-8 文件
【发布时间】:2017-12-08 20:19:09
【问题描述】:

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

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

【问题讨论】:

  • 虽然我不确定这是否完全是骗局,但this question may help a lot
  • 这会将我转换为字符串,但我想更改文件的编码。所以,也许我必须读取文件的内容,将其编码为 utf-8 并将其保存到另一个文件中。但我不知道在 JavaScript 中实现。
  • 加载文件、读取内容、转换、保存文件?声音对我很好
  • 理论上是的,但是如何通过一个小例子来实现它......
  • "源 JSON 文件是由另一个框架生成的,可能包含 BOM" — 那么它不是 JSON:Implementations MUST NOT add a byte order mark to the beginning of a JSON text.

标签: javascript json node.js encoding utf-8


【解决方案1】:
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');

这是如何工作的?

fs读入一个文件时,会将文件的编码转换成JS使用的格式。

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

【讨论】:

  • 如果我不知道文件的原始编码?它是由另一个框架生成的,我不知道源 JSON 文件的原始源编码。
猜你喜欢
  • 2023-03-16
  • 2014-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2018-04-01
  • 2012-06-01
  • 1970-01-01
相关资源
最近更新 更多