JExcel中的编码问题

Jav*_*avi 14 java google-app-engine encoding servlets jexcelapi

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

在服务器上我有:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

谁能告诉我怎么能解决这个问题呢.

谢谢

Jav*_*avi 33

好的,我这样做了:

WorkbookSettings ws = new WorkbookSettings();
ws.setEncoding("Cp1252");
Workbook workbook = Workbook.getWorkbook(stream, ws);
Run Code Online (Sandbox Code Playgroud)