sheetjs 解析dbf文件的时候,中文出现了乱码,使用 const str = cptable.utils.decode(936, buf); 转成字符串类型,打印 'str' 乱码是解决了,
后面 const workbook = XLSX.read(str, { type: "string" });的时候 workbook 里面的SheetNames , 和Sheets 数组都为空了,解析不出来内容了
可以使用iconv-lite模块来解决。
可以使用iconv-lite模块来将DBF文件数据编码为UTF-8编码,以便使用sheetjs解析出完整和准确的DBF文件内容。
使用iconv-lite模块,可通过下面的代码解决中文乱码问题:
// 导入iconv-lite模块
const iconv = require('iconv-lite');
// 将DBF文件的数据转换为UTF-8格式
const buffer = iconv.encode(dbfData, 'GBK');
// 解析DBF文件数据,使用sheetjs
const workbook = XLSX.read(buffer, {type: 'buffer', cellDates: true});