使用jspsmart上传文件很方便,但是如果使用UTF-8编码,会出现乱码。对于使用?? UTF-8编码的项目很不方便。GB2312编码格式不会出现乱码。
??? 今天看了一下,只需要修改一个地方就可以解决问题。
??? 首先反编译SmartUpload类,只需要修改一个私有方法,方法修改如下:
- private?String?getDataHeader()?{ ??
- ????????int?i?=?m_currentIndex; ??
- ????????int?j?=?0; ??
- ????????for?(boolean?flag1?=?false;?!flag1;) ??
- ????????????if?(m_binArray[m_currentIndex]?==?13??
- ????????????????????&&?m_binArray[m_currentIndex?+?2]?==?13)?{ ??
- ????????????????flag1?=?true; ??
- ????????????????j?=?m_currentIndex?-?1; ??
- ????????????????m_currentIndex?=?m_currentIndex?+?2; ??
- ????????????}?else?{ ??
- ????????????????m_currentIndex++; ??
- ????????????} ??
- ????????//修改开始 ??
- ????????String?s?=?null; ??
- ????????try?{ ??
- ????????????//修改代码,首先得到响应的字符编码类型,然后对得到的字符串进行编码。 ??
- ????????????String?encode?=?m_response.getCharacterEncoding(); ??
- ????????????if(encode.equalsIgnoreCase("UTF-8"))?{ ??
- ????????????????s?=?new?String(m_binArray,?i,?(j?-?i)?+?1,?"UTF-8"); ??
- ????????????}?else?{ ??
- ????????????????s?=?new?String(m_binArray,?i,?(j?-?i)?+?1); ??
- ????????????} ??
- ???????????? ??
- ????????}?catch?(UnsupportedEncodingException?e)?{ ??
- ????????????e.printStackTrace(); ??
- ????????} ??
- ????????//修改结束???
- ????????return?s; ??
- ????}??
?