问题描述
在使用fs读取文件之前,我使用chardet来检测文件的编码。直到今天,我的应用程序已读取的所有文件均为UTF-8
或UTF-16LE
。这些很容易从chardet映射到Nodes BufferEncoding。我已经在地图上方的代码中使用了chardetToFsEncodings
。
const chartdetToFsEncodings = new Map<string,BufferEncoding>([
["UTF-8","utf8"],["UTF-16LE","utf16le"],]);
const plausableEncodings = analyse(buffer).map((match) => match.name);
const supportedEncoding = plausableEncodings.find((name) => chartdetToFsEncodings.get(name)) as BufferEncoding;
if (supportedEncoding) {
resolve({
path,data: buffer.toString(supportedEncoding),});
} else {
reject(new Error("File encoding not recognized"));
}
但是当chardet遇到在BufferEncodings中没有明显模拟的编码时,什么是好的方法?就像今天一样,我围住了iso-8859-2
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)