Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用在Mac Excel 2011中自动打开的javascript创建符合UTF-8的CVS文件_Javascript_Excel_Csv_Utf 8_Export To Csv - Fatal编程技术网

如何使用在Mac Excel 2011中自动打开的javascript创建符合UTF-8的CVS文件

如何使用在Mac Excel 2011中自动打开的javascript创建符合UTF-8的CVS文件,javascript,excel,csv,utf-8,export-to-csv,Javascript,Excel,Csv,Utf 8,Export To Csv,如何让这个ChromeAPI下载可以在Excel中打开的CSV文件 var csv = '123, 123, 美国' chrome.downloads.download({ url: 'data:attachment/csv;charset=UTF-8,' + encodeURI(csv), filename: name + '.csv', saveAs: true } 困难的根本原因是CSV文件没有任何内置编码的概念。Excel在遇到扩展名为CSV的文件时,会

如何让这个ChromeAPI下载可以在Excel中打开的CSV文件

var csv = '123, 123, 美国'

chrome.downloads.download({
     url: 'data:attachment/csv;charset=UTF-8,' + encodeURI(csv),
     filename: name + '.csv',
     saveAs: true
}
困难的根本原因是CSV文件没有任何内置编码的概念。Excel在遇到扩展名为CSV的文件时,会假定它是单字节顺序的,并以这种方式打开。如果文件中有UTF-8编码的双字节字符,Excel将使用垃圾字符打开该文件

这个问题的答案表明,将BOM添加到UTF-8将在Excel中提示这是一个UTF-8文件

然而,无论我们如何尝试,我们都无法让Excel自动识别该文件。使用文本导入向导或其他文本编辑器,它可以正常工作


这里有一个工具,可以让你尝试各种组合。但是这些都不适用于我们:

您的小提琴代码似乎可以很好地插入BOM。如果使用其他文本编辑器生成的静态文件可以工作,您应该比较这两个文件,看看是否有差异。有趣的问题。但是小提琴的例子对我来说很有用。如果我在name、city、state(比如你例子中的中文或其他任何东西)下输入任何字符,然后单击download,那么无论是在OS X下使用Apache Open Office Calc,还是在Linux下使用Libre Office Calc,我都会看到文本导入对话框,当选择UTF-8进行编码时,相同的字符出现在Excel中。我在OSX上运行Office 2011,BOM不会导致Excel自动识别该文件。我用十六进制编辑器对它进行了测试,但没有成功。Excel(Mac)15中添加了对UTF-8 BOM的支持。带BOM的UTF-16 LE在Mac Excel 2011上对我有效。当然,你必须先用一个合适的编码器对它进行编码。你的小提琴代码似乎能很好地插入BOM表。如果使用其他文本编辑器生成的静态文件可以工作,您应该比较这两个文件,看看是否有差异。有趣的问题。但是小提琴的例子对我来说很有用。如果我在name、city、state(比如你例子中的中文或其他任何东西)下输入任何字符,然后单击download,那么无论是在OS X下使用Apache Open Office Calc,还是在Linux下使用Libre Office Calc,我都会看到文本导入对话框,当选择UTF-8进行编码时,相同的字符出现在Excel中。我在OSX上运行Office 2011,BOM不会导致Excel自动识别该文件。我用十六进制编辑器对它进行了测试,但没有成功。Excel(Mac)15中添加了对UTF-8 BOM的支持。带BOM的UTF-16 LE在Mac Excel 2011上对我有效。当然,您必须首先使用合适的编码器对其进行编码。