数据到Excel utf-8问题

时间:2011-08-09 13:01:51

标签: java excel jsp encoding character-encoding

情况:我有一个数据表,它显示在jsp页面中,带有utf-8。它没有问题。当我将它导出到Excel时,非英语值看起来很怪异。导出代码:

public class DisplayExcelView extends ExcelView {
public String getMimeType() {   

    return "application/vnd.ms-excel; charset=utf-8"; //uses the Win-cp1256
}

}

它保存了一个xls文件。当我用doubleclick打开它时

  

您尝试打开的文件,blabla.xls的文件扩展名格式不同.blabla您想打开文件吗?

如果我点击是;非英语价值看起来很怪异。

但是如果我首先打开Excel 2007并加载DATA / From文本(通过导入.xls文件),Excel会显示一个窗口,其中所选的字符集是UTF-8。选择此项后,非英语字符看起来很完美。

是不是有办法打开双击.xls文件并获得正确的非英文字符?

1 个答案:

答案 0 :(得分:0)

您可以使用您想要的任何编码输出到文本文件:

BufferedWriter out = 
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"iso-8859-1"));

我选择了iso-8859-1,但这可能不是Excel的默认编码。 它是Java中唯一不属于UTF类型的默认字符集。

如果您需要Windows的其他字符集(不是iso-8859-1或任何utf), 你将不得不看看如何导入这些字符集 java.nio.charset.spi.CharsetProvider(你可能最好使用Google,因为文档不是很有用)。