我有一个带有'Ł'字符的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行终止符
我可以用这些详细信息保存文件吗?
答案 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
命令检查它具有哪种编码并从那里开始。