JSP上传乱码问题

c403304773 2006-11-26 10:52:52
在做上传下载时使用了jspSmartUpload上传下载组件,获取表单的值如下:
String sofename=su.getRequest().getParameter("sofename");
String sofelanguage=su.getRequest().getParameter("sofelanguage");
String sofetype=su.getRequest().getParameter("sofetype");
String sofesize=su.getRequest().getParameter("sofesize");

打印:
out.print(sofename);
out.print("<br>");
out.print(sofelanguage);
out.print("<br>");
out.print(sofetype);
out.print("<br>");
out.print(sofesize);

如果表单的值有中文,打印时没问题,但是写进数据库时中文都成了乱码!!
用的数据库是MYSQL,数据库编码是GB2312;表单和获取表单页面也都是GB2312。
...全文
498 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxm_dgcstars 2006-12-04
  • 打赏
  • 举报
回复
你把编码用UTF-8,很少碰到乱码问题
zxm_dgcstars 2006-12-04
  • 打赏
  • 举报
回复
你把编码用UTF-8,基本上很好碰到乱码问题
微服森林 2006-12-04
  • 打赏
  • 举报
回复
好东西还是要顶的
tfzh_Mylh 2006-12-04
  • 打赏
  • 举报
回复
程序中加个过滤程序,网上下段代码,好多书上都有
wuyulunbi134 2006-12-04
  • 打赏
  • 举报
回复
让request和respone都.一下那个setA。。。|| senA那个方法里面写UTF-8就可以了。
具体方法名忘了。。你看一下就知道了。。很简单
nlysailor 2006-12-04
  • 打赏
  • 举报
回复
也给good_pb@163.com发了一份
nlysailor 2006-12-04
  • 打赏
  • 举报
回复
charset是自己定义的,包括setCharset方法。

另外,即使这两个问题没有,可能还会碰到一个File问题,要修改的不止一处。

我已经把文件发到403304773@163.com了。
c403304773 2006-12-03
  • 打赏
  • 举报
回复
不行 编译说找不到charset 改了之后Tomcat也运行不了
good_pb 2006-12-03
  • 打赏
  • 举报
回复
把改过的目标代码给我一份吧,这个问题也是还没有解决
good_pb@163.com
wjhalex 2006-12-03
  • 打赏
  • 举报
回复
上网下载个支持中文化的JSPSMARTUPLOAD,我上次看到有人做过这个方面的改进,
c403304773 2006-12-01
  • 打赏
  • 举报
回复
急啊 !解决马上就给分!
c403304773 2006-12-01
  • 打赏
  • 举报
回复
就等你发过来了
szb110 2006-12-01
  • 打赏
  • 举报
回复
就按照nlysailor() 说的,可以解决。恰好一个朋友也遇到这个问题。我们弄了好办天,呵呵,才弄出来。要在这里看看就不用浪费那么时间了.JSPSMART组件网上很容易找到的。
nlysailor 2006-12-01
  • 打赏
  • 举报
回复
好啊,晚上回去发给你.要源代码还是目标代码?


也就一个文件,替换原先的smartupload.class就行了.再在页面里加一句:su.setCharset("GB2312")
c403304773 2006-11-30
  • 打赏
  • 举报
回复
能再具体点?还不知道怎么搞呢。
c403304773 2006-11-28
  • 打赏
  • 举报
回复
大哥能将你的JSPSMART组件发给我吗??
403304773@163.com
c403304773 2006-11-27
  • 打赏
  • 举报
回复
多谢楼上的 我去找找看
nlysailor 2006-11-27
  • 打赏
  • 举报
回复
呵呵,我昨天刚刚解决了这个问题,今天就有人问。

因为JSPSMART用的编码是UTF-8,你这里用GB2312,当然不行。在页面里转码也没有用,需要修改smartupload.java源代码,将SmartUpload.java下的public void upload()方法中的一行:
String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1);
改为:
String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1,charset);

再用setCharset把charset设为GB2312就OK了。
c403304773 2006-11-27
  • 打赏
  • 举报
回复
几位不知道做过上传下载没有 :
“这是由于jspsmartupload的编码问题,jspsmartupload开发的时候没有考虑到中文编码的问题,所以其混合参数不支持中文的提取,即使你su.getRequest().getParameter("sofename")用newByte转成"gb2312",你也看不到正常的中文,你可以上网搜搜这方面的文章,很多文章都有针对这方面的介绍,如果你用jspsmartupload的源代码,你也可以在其源代码中修改

我觉得应该是这个问题!!
deng1234 2006-11-27
  • 打赏
  • 举报
回复
重命名
加载更多回复(5)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧