javascript - 如何在 JavaScript 中从 .csv 文件中读取特殊字符
问题描述
我想阅读包含特殊字符(波兰语)的 .csv 文件。
我正在使用 ExcelJs 读取 .csv:
var workbook = new Excel.Workbook();
workbook.csv.readFile(uploadsPath + "/" + filename, {delimiter: ';'})
.then(function (worksheet) {
var worksheet = workbook.getWorksheet(1);
console.log(worksheet.getRow(3).getCell(7).value);
});
}
使用此代码,我得到的是“Wrocław”而不是“Wrocław”。
我尝试使用编码:
var workbook = new Excel.Workbook();
workbook.csv.readFile(uploadsPath + "/" + filename, {encoding: 'utf-16le'})
.then(function (worksheet) {
var worksheet = workbook.getWorksheet(1);
console.log(worksheet.getRow(3).getCell(7).value);
});
}
但是后来我收到了这个错误:
TypeError [ERR_INVALID_ARG_TYPE]:“buf”参数必须是 Buffer、TypedArray 或 DataView 类型之一。接收到的类型对象
如何处理?
解决方案
好的,我找到了一个简单的解决方案。
我创建了函数
function changeEncoding(path) {
var buffer = fs.readFileSync(path);
var output = iconv.encode(iconv.decode(buffer, "win1250"), "utf-8");
fs.writeFileSync(path, output);
}
我只是读取文件,并在iconv-lite的帮助下,首先从win1250解码,然后用utf-8编码保存文件。
推荐阅读
- post - 定义一个回文运算符,在 postscript 中以相反的顺序复制堆栈上的值
- c# - 根据 C# 和 .Net 的字符串描述输入获取值
- javascript - 加载页面时如何运行函数javascript以及一段时间检查ID
- python - 如何在列表中找到三元组,然后创建包含三元组的新列表
- ios - 即使用户的默认浏览器不是 Safari,是否有任何方法可以强制在 Safari 中打开链接
- python - Tkinter/Webbrowser : tab opening dimension/position control ? open resize and display in a grid, youtube video in a Gui
- excel - 如何执行此特定的 excel vlookup 任务
- azure-functions - 如何从上传到 Azure 存储帐户的任何文件触发 Azure Function?
- javascript - Beginner - I want the scroll bar to move down with JS
- wordpress - Wordpress CLI “Warning: Some code is trying to do a URL redirect.” error