-1

我有一个带有 'Ł' 字符的 ansi 文件我想读取这个字符并将其保存到另一个具有相同编码的文件中(以获取 'Ł' 字符)。

const fs = require('fs');
var content = fs.readFileSync('input.txt',null); //Ł
fs.writeFileSync('output.txt',content,null); //Ł how to get this?

如何用 nodejs 做到这一点?

更新:我检查了输入文件:

文件 -i

文本/纯字符集=uknown-8bit

文件-r

非 ISO 扩展 ASCII,行很长的文本,带有 CRLF 行终止符

我可以保存包含这些详细信息的文件吗?

4

2 回答 2

0

我通过使用有问题的字符从缓冲区创建二进制字符串来实现我想要的:

const fs = require('fs');
function getChar(charId) {
    let characters = { AA:165, //Ą
         EE:202, //Ę
         CC:198, //Ć
         LL:163, //Ł
         SS:140, //Ś
         OO:211, //Ó
         ZZ:175, //Ż
         ZZZ:143, //Ź
         aa:185, //ą
         ee:234, //ę
         cc:230, //ć
         ll:179, //ł
         ss:156, //ś
         oo:243, //ó
         zz:191, //ź
         zzz:159 //ź
    };
    let buf = new Buffer({
        type:'Buffer',
        data:[ characters[charId] ],
        encoding:'ISO-8859-2'
    });
    return buf.toString('binary')
}
fs.writeFileSync('output.txt',getChar('LL')+" test",'ascii'); //'Ł test'
于 2017-01-26T13:18:39.967 回答
-1

这很可能是一个 utf-8 编码文件,而不是“ansi”文件。'Ł' 字符在ansi编码中是不可表示的。使用 unix-es 上的命令检查file它具有什么样的编码,然后从那里继续。

于 2017-01-26T08:15:21.187 回答