Nodejs 求助:http 编码 utf8,写入文件指定 utf8,生成 utf16le 文件
Nodejs 求助:http 编码 utf8,写入文件指定 utf8,生成 utf16le 文件
返回 header
Headers {
[Object: null prototype] {
'content-encoding': [ 'gzip' ],
'content-type': [ 'application/json; charset=utf-8' ],
date: [ 'Tue, 22 Sep 2020 03:53:46 GMT' ],
server: [ 'Caddy' ],
'x-request-id': [ '' ],
connection: [ 'close' ],
'transfer-encoding': [ 'chunked' ] } }
部分返回内容
"""
鍦板潃鏀惰棌
columns and relationships of “address”
“”"
type address {
“”“鍦板潃琛屾斂鍒掑垎”""
address_components(
“”“JSON select path”""
path: String
): jsonb
“”“璇︾粏鍦板潃”""
formatted_address: String
“”“缁忕含搴?”"
geometry: geography
id: uuid!
文件写入
fs.writeFileSync(output, '\uFEFF' + schema, {
encoding: 'utf8',
})
最后文件是 utf16-le,转成 utf-8 会乱码?
不清楚哪里出问题了
1 回复
在 Node.js 中处理文件编码时,你可以使用内置的 fs
模块来读写文件,并通过指定编码来控制文件的编码格式。以下是一个示例代码,展示如何将 UTF-8 编码的 HTTP 响应内容写入一个 UTF-8 编码的文件,然后将其转换为 UTF-16LE 编码并写入另一个文件。
const fs = require('fs');
const https = require('https');
// 示例 URL,这里使用一个公共的 UTF-8 编码的文本文件 URL
const url = 'https://example.com/utf8file.txt';
https.get(url, (res) => {
let data = '';
// 接收数据块
res.on('data', (chunk) => {
data += chunk;
});
// 响应结束时处理数据
res.on('end', () => {
// 写入 UTF-8 编码的文件
fs.writeFile('output_utf8.txt', data, 'utf8', (err) => {
if (err) throw err;
console.log('UTF-8 文件已写入');
// 读取 UTF-8 文件并转换为 UTF-16LE 编码写入新文件
fs.readFile('output_utf8.txt', 'utf8', (err, content) => {
if (err) throw err;
fs.writeFile('output_utf16le.txt', content, 'utf16le', (err) => {
if (err) throw err;
console.log('UTF-16LE 文件已写入');
});
});
});
});
}).on('error', (e) => {
console.error(`Got error: ${e.message}`);
});
这段代码首先从指定的 URL 获取 UTF-8 编码的文本内容,然后将其写入一个 UTF-8 编码的文件,最后读取该文件并将其内容以 UTF-16LE 编码写入另一个文件。