Java Excel在生成的CSV文件中未正确显示欧元符号

Java Excel在生成的CSV文件中未正确显示欧元符号,java,jquery,excel,spring,csv,Java,Jquery,Excel,Spring,Csv,我在一个web应用程序中工作,我需要生成CSV文件。CSV文件包含欧元价格,如140欧元,但当我打开CSV文件时,Excel无法正确显示欧元符号140欧元 我从Oracle数据库读取数据,将CSV文件内容存储在列表中,并将结果写入HttpServletResponse,如 我在Windows7、MS Office 2010中工作,我想知道是否有任何方法可以让Excel以UTF-8编码打开此文件?我试图添加BOM,但没有效果 请帮我解决这个问题,提前谢谢 编辑: 我使用AJAX调用下载文件,在加载

我在一个web应用程序中工作,我需要生成CSV文件。CSV文件包含欧元价格,如140欧元,但当我打开CSV文件时,Excel无法正确显示欧元符号140欧元

我从Oracle数据库读取数据,将CSV文件内容存储在列表中,并将结果写入HttpServletResponse,如

我在Windows7、MS Office 2010中工作,我想知道是否有任何方法可以让Excel以UTF-8编码打开此文件?我试图添加BOM,但没有效果

请帮我解决这个问题,提前谢谢

编辑:

我使用AJAX调用下载文件,在加载文件之前,我将BOM添加到结果中。当我双击Excel打开文件时,在本地开发环境中正确打开CSV,但当我在远程服务器中部署应用程序时,CSV文件中的欧元符号没有正确写入,这意味着Excel无法正确显示符号

任何人都能看出问题出在哪里?

我也有同样的问题。 您可以通过以下方式导入它:

创建新的Excel工作表。 转到数据->从文本,如下图所示德文Excel版本 在弹出窗口中将文件原点设置为Unicode UTF-8。 单击“下一步”并根据.csv文件设置分隔符。。最可能的逗号 单击“下一步”查看所有列。 您可以为每个列设置特定的数据格式,如日期、文本。。。 完成向导后,它应该会工作。

我也遇到了同样的问题。 您可以通过以下方式导入它:

创建新的Excel工作表。 转到数据->从文本,如下图所示德文Excel版本 在弹出窗口中将文件原点设置为Unicode UTF-8。 单击“下一步”并根据.csv文件设置分隔符。。最可能的逗号 单击“下一步”查看所有列。 您可以为每个列设置特定的数据格式,如日期、文本。。。
完成向导后,它应该可以工作。

如果要使用Excel打开CSV,则必须使用其他版本的Excel进行检查。该问题出现在某些版本的Excel for CSV中。此外,您还可以设置一个编码,我可以用一个没有BOM的常规UTF8编码CSV文件重现您的问题。但是,如果我将BOM表添加到文件的开头,它会正确地渲染欧元符号。也许您没有正确添加BOM表?您是否已使用十六进制编辑器检查生成的CSV文件,以确保在开始时正确添加BOM表?可能会有所帮助。如果要使用Excel打开CSV,您必须使用其他版本的Excel进行检查。该问题出现在某些版本的Excel for CSV中。此外,您还可以设置一个编码,我可以用一个没有BOM的常规UTF8编码CSV文件重现您的问题。但是,如果我将BOM表添加到文件的开头,它会正确地渲染欧元符号。也许您没有正确添加BOM表?您是否使用十六进制编辑器检查了生成的CSV文件,以确保在开始时正确添加BOM表?也许会有所帮助。我知道这个解决方案以及其他一些方法。但我需要一个解决方案,因为我们不能告诉客户以这种方式打开文件。客户需要下载文件,双击文件并正确查看内容。我不知道您正在寻找客户可以打开您的csv的方法。你的问题不清楚。另一种更改Excels默认设置以接受utf-8编码的方法如图所示,但我不确定这对clientsWorks perfect来说是否是一种更简单的方法,谢谢我知道这个解决方案以及其他一些方法。但我需要一个解决方案,因为我们不能告诉客户以这种方式打开文件。客户需要下载文件,双击文件并正确查看内容。我不知道您正在寻找客户可以打开您的csv的方法。你的问题不清楚。另一种更改Excels默认设置以接受utf-8编码的方法如图所示,但我不确定这对于clientsWorks perfect来说是否更简单,谢谢
List<String> data = getCsvContent();
response.getOutPutStream().write(data.toString().getBytes("UTF-8"));