使用nodejs从文件读取并写入文件'Ł'字符
Read from file and write to file 'Ł' character with nodejs
我有一个带有“Ł”字符的 ansi 文件我想读取这个字符并将其保存到另一个具有相同编码的文件(以获取“Ł”字符)。
const fs = require('fs');
var content = fs.readFileSync('input.txt',null); //Ł
fs.writeFileSync('output.txt',content,null); //Ł how to get this?
如何用 nodejs 做到这一点?
更新:我检查了输入文件:
文件-i
text/plain charset=uknown-8bit
文件-r
Non-ISO extended-ASCII, text with very long lines, with CRLF line terminators
我可以保存包含这些详细信息的文件吗?
这很可能是一个 utf-8 编码文件,而不是 "ansi" 文件。 ansi 编码无法表示“Ł”字符。在 unix-es 上使用 file
命令检查它具有何种编码,然后从那里继续。
我通过使用有问题的字符从缓冲区创建二进制字符串实现了我想要的:
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'
我有一个带有“Ł”字符的 ansi 文件我想读取这个字符并将其保存到另一个具有相同编码的文件(以获取“Ł”字符)。
const fs = require('fs');
var content = fs.readFileSync('input.txt',null); //Ł
fs.writeFileSync('output.txt',content,null); //Ł how to get this?
如何用 nodejs 做到这一点?
更新:我检查了输入文件:
文件-i
text/plain charset=uknown-8bit
文件-r
Non-ISO extended-ASCII, text with very long lines, with CRLF line terminators
我可以保存包含这些详细信息的文件吗?
这很可能是一个 utf-8 编码文件,而不是 "ansi" 文件。 ansi 编码无法表示“Ł”字符。在 unix-es 上使用 file
命令检查它具有何种编码,然后从那里继续。
我通过使用有问题的字符从缓冲区创建二进制字符串实现了我想要的:
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'