Node.js 写一个文件为 latin1

问题描述

我似乎无法解决这个问题,我尝试了一堆不同的编码和包来完成它,但仍然失败......

我在 Node.js 中有一个包含双字节字符(瑞典语 Å、Ä 和 Ö)的文本(转换后的发票),注销时完全没问题:

enter image description here

我需要将它写入一个文件(在 SFTP 服务器文件系统上)作为“latin1”(即“ANSI”),这里是出错的地方,因为双字节字符最终会变成“正方形”或文件中的问号。

var Iconv  = require('iconv').Iconv;
    var iconvl = require("iconv-lite");
    var iconv = new Iconv('UTF-8','ISO-8859-1');
var buffer = iconv.convert(params.Body);
var buffer2 = iconv.convert(Buffer.from(params.Body));
var buf = iconvl.encode(params.Body,"ascii");
    const fs = require('fs');
    fs.writeFileSync("/tmp/test.txt",buf,{
      encoding: "binary"
    });
    fs.writeFileSync("/tmp/test2.txt",params.Body,{
      encoding: "utf-8"
    });
    fs.writeFileSync("/tmp/test3.txt",buffer2,{
      encoding: "latin1"
    });

在测试/代码文件中,test2.txt 是可以的,但作为“utf-8”,字符完好无损,但没有任何“转换”文本是可以的。文件 text.txttext3.txt 打开为“ANSI”但带有损坏的字符,例如“T�li� 芬兰�yj”。 查看文件为“utf-8”,字符为“Töli䠆inland ֹj”,因此编码错误...

我在这里遗漏了什么,我怎样才能对这个文件进行排序,使文件是“ANSI”,其中的字符完好无损?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...