Excel电子表格中的字符编码(以及用什么Java字符集来解码)

我正在使用JExcel库来读取Excel电子表格。 电子表格中的每个单元格都可以包含任何类似于44种语言(英语,葡萄牙语,法语,中文等)的本地化string。 今天我不告诉API关于它应该使用的编码的任何东西。 它处理中国行,但总是把葡萄牙和德国搞砸了。 不知怎的,默认编码(我的开发箱上的MacRoman,生产上的UTF-8)没有正确解释它从Excel工作簿中抽出的string。 JExcel如何解释文件的字符编码一定有问题。

话虽如此…

excel工作簿中的所有string是否使用相同的字符集进行编码?

有工作簿元数据我可以问这个字符集是什么(我还没有find它)?

如果我通过像jchardet(http://jchardet.sourceforge.net/)这样的东西来运行所有的单元格,是否可以为整个工作簿预​​测字符编码(这在第一个问题上就是“是的,在一个给定的工作簿中的所有蜇伤编码相同的字符集“)?

这么多的问题,那么短的时间。

那么我没有直接得到答案,但马特发现了一个规范指出了实际答案的方式: http : //sc.openoffice.org/excelfileformat.pdf

与此同时,通过将编码设置为“Cp1252”,我的问题就消失了。 我不确定究竟是为什么,但是我没有看到马上的礼物,可以这么说,而且正在继续前进。

  WorkbookSettings workbookSettings = new WorkbookSettings(); workbookSettings.setEncoding( "Cp1252" ); Workbook.getWorkbook( theFile, workbookSettings ); 

我会打这个回答。

我有这个问题,当从Excel文件中读取单元格值时,一些值出现“?” 因为这对应于带有重音的字母…这个代码是否可以解决这个问题? 因为当我在Windows下运行时,我无法testing如果我将在Linux下(这是我正在部署的服务器的SO)… …