JExcel 中的编码问题

我正在使用JExcel在GAE / Java应用程序中加载一个excel文件,如下所示:

用于上传文件的 html 表单如下所示:

<form id="" action="/save" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1">
    <input name="file" type="file" value="load"/>
    <input type="submit"value="load excel"/>
</form>

在服务器中,我有:

ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
    FileItemStream item = iterator.next();
    InputStream stream = item.openStream();
    if (!item.isFormField()) {
        //if it's not a form field it's a file

        Workbook workbook = Workbook.getWorkbook(stream);
        ...
        String name = sheet.getCell(COL_NUMBER, row).getContents();
    }
}

问题是,如果我在单元格中写入类似“city ó”的东西,当它在服务器中读取变量名称时,变量名称是“city ?”。编码不正常。

我试图更改 accept-charset=“ISO-8859-1”(将其设置为 utf-8 或将其删除),但没有成功。

谁能告诉我如何解决这个问题。

谢谢


答案 1

好吧,我通过这样做得到了它:

WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("Cp1252");
Workbook workbook = Workbook.getWorkbook(stream, ws);

答案 2

工作簿设置将查找系统属性 jxl.编码

如果您不容易访问工作簿设置(即来自Dlools-ExcelParser),您可能会发现这更可取。


推荐