jspsmartupload,smartupload UTF8 版,解决乱码问题

1 参考资料
A [url]http://hi.baidu.com/icelove0918/blog/item/d37a240645cae378020881b2.html [/url]
B [url]http://zhouwenjun.iteye.com/blog/542333[/url]
C [url]http://javay.iteye.com/blog/293409[/url]
D [url]http://blog.tianya.cn/blogger/post_show.asp?BlogID=769988&PostID=10095284[/url]
E [url]http://tanganping.iteye.com/blog/81615[/url]

2 原因:
JSP页面设置编码:
<%@ page language="java" pageEncoding="UTF-8"%>
使用smart-upload.jar上传后台后到中文值出现乱码,使用过滤器及设置转码也没效果,页面设置为GBK,GB2312提交后台中文显示正常,参考以下资料
总结如下:
使用jspsmart.jar要修改代码:由于各版本不同,修改也有所变化
A 第一种修改方式:

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;
}

B 第二种修改方式
反编译com.jspsmart.upload.SmartUpload,把SmartUpload.java中public void upload()的

String s9 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1);

改为

String s9 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1, "UTF-8");

重新编译后打包.
form中添加字符编码属性accept-charset="UTF-8"
有其它方式是已经打包好了.jar包,见附件.
3 我的处理方式
用smart-upload-src.rar中的源码可以解决乱码问题,但将之在myeclipse中使用自带的打包工具后使用时出现乱码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值