java web工程读取excel特殊字符乱码
maco 2012-07-23 09:55:56 前天写一个黑名单上传需求。用jxl将excel中的黑名单信息导入到后台数据库中。由于黑名单名称有各种文字以及某些特殊字符,如Estêvão NA MENA ,Désiré Tagro等。当读到某些特殊字符的时候会出现乱码。更奇怪的是用直接用java类中的main方法读不会乱码,一旦通过web工程调用逻辑相同的一段代码就会出现乱码,不得其解,求高手指点!
源代码如下,
java类直接读取excel,不会出现乱码。
public static void main(String[] args) throws Exception {
File excelFile = new File("C:/Documents and Settings/Administrator/桌面/blackLists.xls");
WorkbookSettings workbookSettings=new WorkbookSettings();
workbookSettings.setEncoding("ISO-8859-1");
Workbook wb = Workbook.getWorkbook(excelFile,workbookSettings);
Sheet rs = wb.getSheet(0);
int count=1;
for(int i=1;i< rs.getRows();i++){
String name = rs.getCell(0, i).getContents().trim();
System.out.println(count+" "+name);
count++;
}
}
在web工程servlet中执行
File excelFile = new File("C:/Documents and Settings/Administrator/桌面/blackLists.xls");
WorkbookSettings workbookSettings=new WorkbookSettings();
workbookSettings.setEncoding("ISO-8859-1");
Workbook wb = Workbook.getWorkbook(excelFile,workbookSettings);
Sheet rs = wb.getSheet(0);
int count=1;
for(int i=1;i< rs.getRows();i++){
String name = rs.getCell(0, i).getContents().trim();
System.out.println(count+" "+name);
count++;
}
就会出现乱码,两段的逻辑一模一样。
还有我的工程编码为utf-8