這不是一個純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