本人用Struts2 实现文件上传,JSP编码格式必须为 UTF-8 ,其他设置也统一为UTF-8了
服务器用的是tomcat 5.5 ,在tomcat的 server.xml中也设置了 URIEncoding="UTF-8" 统一编码
现在问题是在windows xp上建立的tomcat 上传文件不会出现中文乱码,假如把tomcat部署在linux上就出现了乱码
之前写过过滤器来转码也无效
求助!!!

解决方案 »

  1.   

    form表单有用 enctype 属性么,这个属性如果设置了,那设置了编码,过滤器也应该是没有用的,表单会将数据全部转换为二进制数据提交,必须要自己写个 解码器 转换一下
      

  2.   

    文件上传不是都要设置form 的enctype="multipart/form-data" 吗?
    至于你说的那个解码器不会要讲二进制转为GBK吧 
    还有一个问题 就是 在windows 下正常显示为中文,在linux 下就会出现乱码
      

  3.   

    做上传这东西,我还没怎么弄过,
    我是听别人这么说过,要用解码器,将二进制转为UTF还是GBK就看你了
    从 ISO-8859-1 到你要的字符集
    new String(sourceStr.getBytes("ISO-8859-1"), "UTF-8");仅供参考,实际情况我没遇到过
      

  4.   

     改这个 new String(sourceStr.getBytes("GB2312"),"iso8859-1") 
      

  5.   

    <!-- 设置字符集 -->
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
      

  6.   

    第一种:
    <?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是可以的。