通过Struts2 实现文件上传乱码问题,紧急求助!!!

eric_joy 2010-11-17 11:20:04
本人用Struts2 实现文件上传,JSP编码格式必须为 UTF-8 ,其他设置也统一为UTF-8了
服务器用的是tomcat 5.5 ,在tomcat的 server.xml中也设置了 URIEncoding="UTF-8" 统一编码
现在问题是在windows xp上建立的tomcat 上传文件不会出现中文乱码,假如把tomcat部署在linux上就出现了乱码
之前写过过滤器来转码也无效
求助!!!
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT牛气冲天 2012-10-11
  • 打赏
  • 举报
回复
第一种:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts SYSTEM "struts-2.1.7.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<package name="struts2" extends="struts-default">
</action>
<action name="upload" class="com.test.action.UploadAction">
<result name="success">/uploadok.jsp</result>
</action>
</package>
</struts
配置查看链接
http://www.cnblogs.com/linjiqin/archive/2011/03/21/1990674.html
第二种:
struts.properties中设置struts.i18n.encoding为UTF-8是可以的。
eric_joy 2010-11-19
  • 打赏
  • 举报
回复
还是不能解决
不过非常感谢
eric_joy 2010-11-17
  • 打赏
  • 举报
回复
其实你说的这种方式我也试过
好像还是不行
纠结啊
DearFen 2010-11-17
  • 打赏
  • 举报
回复
做上传这东西,我还没怎么弄过,
我是听别人这么说过,要用解码器,将二进制转为UTF还是GBK就看你了
从 ISO-8859-1 到你要的字符集
new String(sourceStr.getBytes("ISO-8859-1"), "UTF-8");

仅供参考,实际情况我没遇到过
eric_joy 2010-11-17
  • 打赏
  • 举报
回复
文件上传不是都要设置form 的enctype="multipart/form-data" 吗?
至于你说的那个解码器不会要讲二进制转为GBK吧
还有一个问题 就是 在windows 下正常显示为中文,在linux 下就会出现乱码
DearFen 2010-11-17
  • 打赏
  • 举报
回复
form表单有用 enctype 属性么,这个属性如果设置了,那设置了编码,过滤器也应该是没有用的,表单会将数据全部转换为二进制数据提交,必须要自己写个 解码器 转换一下
figo977 2010-11-17
  • 打赏
  • 举报
回复
<!-- 设置字符集 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
kardelpeng 2010-11-17
  • 打赏
  • 举报
回复
改这个 new String(sourceStr.getBytes("GB2312"),"iso8859-1")

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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