struts的html:file标签上传文件,中文的文件名会导致乱码问题。
解决方法:
struts上传文件用的是gbk编码方式,所以将文件名转码就可以。
new String(filename.getBytes("GBK"),"UTF-8");
这里有个问题,网上经常有人将编码格式改称gbk或者是gb2312,不过为了国际化和通用性,我建议还是用UTF-8编码格式。毕竟现在的开发工具大部分都是国外的,对UTF-8的支持到位。同时国际化也方便。
乱码问题是个很头疼的问题,以前有一些经验,最近整理一下跟大家分享。
我现在有一个问题是:
如果获取一个给定字符串的编码格式?
不知道用程序如何实现,应该不容易。我这里说的获取不是用人眼或者是借助外来工具得到。
如果借助人眼导容易实现,用类似System.out.println(new String(filename.getBytes("GBK"),"UTF-8"));的方式把所有的编码的排列组合都输出一遍,看看哪个正确显示,哪个就是字符串的编码方式。
欢迎大家讨论!