问题:在SEAM框架下,使用<s:fileUpload />时,如果服务器的操作系统为windows,则中文文件名称为乱码,如果服务器的操作系统为linux,则中文文件名称正常
原因:SEAM解释上传的文件时,使用了操作系统的默认编码。修改SEAM的源码包,在类org.jboss.seam.web.MultipartRequest,parseReques方法:
原来:
parseParams(new String(buffer, pos, i - pos - 1), ";", headers);
改为:
if(encoding==null)
parseParams(new String(buffer, pos, i - pos - 1), ";", headers);
else
parseParams(new String(buffer, pos, i - pos - 1,encoding), ";", headers);