grails - 在Grails中生成CSV文件时的重音问题

标签 grails csv export diacritics

在此Grails应用程序中,我使用以下代码将数据库寄存器导出到csv文件:

response.setHeader "Content-disposition", "attachment; filename=creds.csv"
response.contentType = 'text/csv; charset=UTF-8'
response.setCharacterEncoding("UTF-8")
response.outputStream << respstr
response.outputStream.flush()

并且浏览器下载的文件存在重音问题。

我可以说数据库中的数据还可以,因为我还使用apache.poi。*实现了xls文件的生成,并且口音显示得很好。

psql -l返回:
Name     |  Owner   | Encoding  | Collation | Ctype |
mydb     | postgres | SQL_ASCII | C         | C     |

我应该进行哪些更改才能使其正常工作?谢谢

最佳答案

解:
可以通过将附加 header (BOM,字节顺序掩码)添加到下载的CSV文件中来解决。

response.setContentType("application/vnd.ms-excel:UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=myOutputFile.csv");

// Excel does not recongize the UTF-8, add additional header (BOM) for excel
OutputStream outputStream = response.getOutputStream();
outputStream.write(0xEF);  
outputStream.write(0xBB);
outputStream.write(0xBF);   

资料来源:http://yp-javadev.blogspot.com/2012/04/resolved-download-csv-with-utf-8.html

关于grails - 在Grails中生成CSV文件时的重音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279266/

相关文章:

grails - Grails在gsp中比较2个变量

grails - Groovy/Grails:如何将多个键组合在一起?

linux - 根据字符串名称过滤 CSV 文件

jquery - 导入和导出 jquery 函数

mysql - Prestashop mysql 导出旧数据

grails - Grails Controller 的 "expando"方法从何而来?

linux - awk 第一列中的项目,然后再次 awk 使用第二列中的结果?

python - 如何*正确*将数据从 csv 读取到 TensorFlow 1

excel - 从 MS Access 中将交叉表查询结果导出到 Excel

grails - 如何重命名现有的 Grails 应用程序