windwos tomcat环境下一般不存在这个问题原因是windows系统默认语言环境是GBK(或GB2312),当把代码移植到linux中就会出现文件名、表单其他中文等乱码(linux默认语言utf-8)。最主要的是DiskFileItemFactory没有根据当前jsp或severlet设置的字符集来设定接受时的编码格式。所以最后养成习惯手动设置DiskFileItemFactory编码来适应不同系统。
额外注明一下tomcat在linux中默认使用iso-8859-1。
具体修改如下:
FileItemFactory fileFactory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fileFactory);
在这设定 :
upload.setHeaderEncoding(encoding);
"encoding"根据具体情况为 "UTF-8" 或 "GBK".
FileItemFactory fileFactory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fileFactory);
在这设定 :
upload.setHeaderEncoding(encoding);
"encoding"根据具体情况为 "UTF-8" 或 "GBK".