在struts2中上传文件时,文件名出现乱码,怎么解决?
通过debug跟踪后.发现从FormFile中通过getFileName中取出的文件名,已经是乱码!
在上传action中我进行了如下处理
fname = new String(f.getFileName().split("\\.")[0].getBytes("gbk"),"utf-8");//取出文件名,不包括后缀名
但是发现比如上传.doc .xls等.最后一个汉字会出现乱码,我不知道为什么,请高手点评.我想在文件上传之前已经乱码.但是我jsp页面的编码方式,已经写好
tomcat中的server.xml编码方式,还有过滤器的编码方式.都写好,通一用utf-8,可为什么还出错?

解决方案 »

  1.   

    你在server.xml中加入这一项试试.(试之前先备份原来的文件,避免修改之后仍行不通.)
    URIEncoding="UTF-8"
    下面这一段是server.xml自带的,在最后加上上面的语句就可以了.
     <Connector
    port="8080"               maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"
     />我之前这样在上传歌曲时也遇到这个问题,可以解决中文乱码问题.
    你可以试试看.