我正在尝试从 Internet 获取页面,然后将其保存到 HTML 文件中。该页面的标题中包含以下内容:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" >
<head>
<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" />
</head>
无论我尝试什么,保存的 HTML 页面看起来都很糟糕,我就是无法正确保存日文字符。
我正在使用node-fetch、fs.writeFile和一个名为jconv的模块。我已经尝试了所有组合,但没有任何效果。现在,代码应该从 SJIS 转换为 UTF-8,然后fs
应该使用 UTF-8 编码写入文件。
fetch(link).
then((res) => {
if (res.ok) {
return res.text();
}
console.log("Invalid data");
}).
then((body) => {
// this is supposed to convert from SJIS to UTF-8
var buf = jconv.convert(body, 'SJIS', 'UTF-8');
// save file
fs.writeFile(path, buf, 'UTF-8', (err) => {
if (!err) {
console.log('Saved');
}
});
});
我尝试了其他编码,但最终的 HTML 文档仍然没有显示正确的特殊字符,就像在从中获取的在线页面上一样。我现在正在测试的页面是这个