swfupload上传文件gbk编码的问题
java web程序,全部使用的是GBK编码,使用swfupload上传文件,使用org.apache.commons.fileupload.servlet.ServletFileUpload实现的接收上传。如果给
ServletFileUpload sfu = new ServletFileUpload(dff);
sfu.setHeaderEncoding("utf-8");
如果这样子设置,在java中取的文件名是正常的,没有乱码的。
如果我不添加sfu.setHeaderEncoding("utf-8");或是使用sfu.setHeaderEncoding("GBK");,那么是乱码的。因为swfupload用的是utf8。
问题就在这里了,我完成文件上传后,还需要取上传的源中文文件名给前端页面显示出来,而这个页面是GBK编码的,如果我直接使用utf8的源中文文件名传过去,在页面显示是乱码的。如果我使用new String(fileName.getBytes(),"GBK")转成gbk,会出现部分乱码的问题。
如果我在java程序中不用utf8取得正确的文件名,以GBK编码取得再传到前端页面的话,前端就能正确显示的。但是由于乱码了,java程序中又处理不好扩展名来保存。
程序是不可能改编码的了,有没有什么好办法来解决呢? --------------------编程问答-------------------- 编码一致很重要
补充:Java , Web 开发