从文件中读取并使用nodejs写入文件'Ł'字符

时间:2017-01-25 17:18:14

标签: javascript node.js encoding polish

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

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

如何使用nodejs执行此操作?

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

file -i

  

text / plain charset = uknown-8bit

file -r

  

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

我可以用这些详细信息保存文件吗?

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:-1)

这很可能是一个utf-8编码文件,而不是“ansi”文件。 {3'字符在ansi编码上无法表示。在unix-es上使用file命令检查它具有哪种编码并从那里开始。