我正在使用 Web 应用程序,需要生成 CSV 文件。 CSV 文件包含欧元价格,例如 140 €
但是当我打开 CSV 文件时,Excel 无法正确显示欧元符号 140 €
.
我从Oracle数据库读取数据,将CSV文件内容存储在List<String>
中并将结果写入 HttpServletResponse response
就像
List<String> data = getCsvContent();
response.getOutPutStream().write(data.toString().getBytes("UTF-8"));
我在 Windows 7、MS Office 2010 中工作,我想知道是否有任何方法可以告诉 Excel 以 UTF-8 编码打开此文件?我尝试添加BOM但没有效果。
请帮我解决这个问题,提前致谢
编辑:
我正在使用 AJAX 调用来下载文件,在下载文件之前,我将 BOM 添加到结果中。当我通过双击 Excel 打开文件时,在开发环境(本地)中正确打开 CSV,但是当我在远程服务器中部署应用程序时,csv 文件中的欧元符号未正确写入,这意味着 Excel 无法显示该符号正确。
谁能告诉我问题出在哪里吗?
最佳答案
我也遇到了同样的问题。 您可以通过以下方式导入它:
- 创建一个新的 Excel 工作表。
- 转到数据 --> 从文本,如下图所示(德语 Excel 版本)
- 在弹出窗口中将文件来源设置为 Unicode (UTF-8)。
- 点击“下一步”并根据您的
.csv
文件设置分隔符。(很可能是逗号) - 单击“下一步”查看您的所有专栏。 您可以为每个列设置特定的数据格式(例如日期、文本...)
完成向导,它应该可以工作。
关于java - Excel 在生成的 CSV 文件中未正确显示欧元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58975586/