java web工程读取excel特殊字符乱码
前天写一个黑名单上传需求。用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 --------------------编程问答-------------------- 两个java工程的编码不一样吧 --------------------编程问答-------------------- 一样的,完全一样的 --------------------编程问答--------------------
完全一样的 --------------------编程问答-------------------- 看看是不是tomcat设置的编码有问题。
tomcat目录conf下server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443" />
--------------------编程问答-------------------- 还是不好使。。。
--------------------编程问答--------------------
补充:Java , Web 开发