这次用 jspSmartUpload 做文件上传下载,该组件默认是 GBK 编码,当上传的文件名为中
文时,我将文件名 getBytes()下,将 GBK 改成 UTF-8。测试了下,貌似没问题,突然有一
次上传一文件时,发现最后几个字乱码,一直是??。在拿些文件测试,后来知道了是当文
件名为中文奇数时,会乱码,而且还上传不了。再做测试,找原因,查看字符的长度,转
成 16 进制看结果。觉得是 jspSmartUpload 组件对中文支持不足的问题。
在网上找解决方法。下了几个 jar,都说解决中文乱码,彻底解决中文乱码!!!用到
我这就都不管用,而且也看到很多回复说解决不了,乱码问题还是依旧!!!
这次自己找到 jspSmart 的源代码,参考了网上的意见,自己稍微修改了下。发现能解
决中文乱码问题,分享给和我遇到同样问题的朋友们!!!
1:当页面上传有参数时,中文会乱码,解决页面上中文参数乱码方法:
修改类 SmartUpload()中的 upload()方法
public void upload() throws ServletException,IOException,SmartUploadException
{
int i = 0;
//boolean flag = false;
boolean flag1 = false;
//boolean flag2 = false;
long l = 0L;
//String s = "";//new String();
//String s2 = "";//new String();
String s4 = ""; //new String();
String s5 = ""; //new String();
String s6 = ""; //new String();
String s7 = ""; //new String();
String s8 = ""; //new String();
String s9 = ""; //new String();
String s10 = ""; //new String();
m_totalBytes = m_request.getContentLength();
m_binArray = new byte[m_totalBytes];
int j;
for(;i < m_totalBytes;i += j)
{
try
{
m_request.getInputStream();