如何在JavaScript中下载希伯来语CSV文件?

5

我试图在Chrome扩展程序中使用JavaScript处理希伯来语的CSV文件。

但是我得到了失败的字符串。

enter image description here

这是我的代码片段。

var csv = "Phone\nאני אוהב אותך\n";
var file = new Blob([csv], {type: 'text/csv;utf-8'});
var url = URL.createObjectURL(file);
chrome.downloads.download({
    url: url,
    filename: name
}, function() {
    URL.revokeObjectURL(msg.url);
});

你是否将字符集设置为utf-8?从这段代码无法判断。 - jdmdevdotnet
我应该设置在哪里? - Eric Chan
"var file = new Blob([csv], {type: 'text/csv;utf-8'});" 所以,对我来说,它似乎已经设置好了。 - Daniel van Dommele
只是为了测试而非真正的解决方案,但如果您使用以下网址:http://www.utf8-chartable.de/unicode-utf8-table.pl?start=1280 并使用表格中第一列的代码(如א代表Aleph等),那么输出是否正确? - Daniel van Dommele
实际上,@DanielvanDommele,这不是显而易见的。根据此文档:https://dev59.com/BGIk5IYBdhLWcg3wNrq8 ,应该设置为以下内容:"data:text/csv;charset=utf-8" - jdmdevdotnet
你是用微软Excel打开它的吗? - Tamas Hegedus
2个回答

2

试试这个:

var csv = String.fromCharCode(0xFEFF) + "Phone\nאני אוהב אותך\n";  // <--- here
var file = new Blob([csv], {type: 'text/csv;utf-8'});
var url = URL.createObjectURL(file);
chrome.downloads.download({
    url: url,
    filename: name
}, function() {
    URL.revokeObjectURL(msg.url);
});

-1

对我来说它起作用了(至少在一个 HTML 测试页面上),使用 UTF-16 字符集代替 UTF-8。实体编码和要打印为希伯来语字符的实际希伯来语字符都可以正常工作。

因此,请将

{type: 'text/csv;utf-8'});

更改为

{type: 'text/csv;utf-16'});


抱歉,仍然是一样的。 - Eric Chan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接