这不是一个纯Java的问题,也可以到HTML问题编码基于Java> XLS
我写了一个Java servlet查询数据库表并显示 结果作为HTML表格有关。用户还可以要求将结果作为 接收Excel工作表。 我通过打印相同的html表格创建Excel工作表,但使用 “application/vnd.ms-excel”的内容类型。 Excel文件是 创建正常。 问题是这些表可能包含非英文数据,所以我想要 使用UTF-8编码。
PrintWriter out = response.getWriter();
response.setContentType("application/vnd.ms-excel:ISO-8859-1");
//response.setContentType("application/vnd.ms-excel:UTF-8");
response.setHeader("cache-control", "no-cache");
response.setHeader("Content-Disposition", "attachment; filename=file.xls");
out.print(src);
out.flush();
非英语字符显示为垃圾(AEIOU)
而且我试图从字符串
byte[] arrByte = src.getBytes("ISO-8859-1");
String result = new String(arrByte, "UTF-8");
但我还是让垃圾转换成字节,我能做些什么? 谢谢
更新:如果我在记事本+ +中打开excel文件,文件编码类型是“UTF-8 without BOM”,如果我将编码更改为“UTF-8”,然后在Excel中打开文件,字符“áéíóú”看起来不错。
你试图输出CSV还是XLS? 如果您尝试输出CVS,请使用: response.setContentType(“text/csv; charset = CP1252”); – Eduardo 2010-06-06 10:41:04