[英]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
文本/純字符集=uknown-8bit
文件 -r
非 ISO 擴展 ASCII,帶有很長行的文本,帶有 CRLF 行終止符
我可以保存包含這些詳細信息的文件嗎?
我通過使用有問題的字符從緩沖區中創建二進制字符串來實現我想要的:
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'
這很可能是 utf-8 編碼文件,而不是“ansi”文件。 'Ł' 字符在ansi編碼中無法表示。 使用 unix-es 上的file
命令檢查它具有什么樣的編碼,然后從那里繼續。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.