Struts会用文件上传组件帮我们获取文件名称。。并付给相应的Action中的属性。。我使用 String uploadFileName; 这个属性来获取上传的文件名。我上传的文件名称是 "泛型.txt"
上传后结果显示文件名称出现乱码。。 (这里我想在服务器也以“泛型.txt”这个名称来保存文件在磁盘上)
然后我直接把 uploadFileName 打印在后台上。System.out.println(uploadFileName); 输出  ????.txtSystem.out.println(uploadFileName.getBytes("UTF-8").length);   输出 16 System.out.println("????.txt".getBytes("UTF-8").length);   输出 8 做到这里 我无语了。。难道说 其中 对文件名 进行 URL 编码了??我想知道我如何才能正确的获得上传的文件名。。还有这个文件名 从 浏览器 到 服务器 倒地都经过了怎样的转换。。???请高手赐教

解决方案 »

  1.   

    乱码问题
    需要多方面做调节的以下可以参考
    1、给服务器做编码
    2、直接给URL做编码
    3、给Action的拦截器或者说是listener做编码
    。诸多方案均可以实现
    不过前提是你要以相同的编码完成
    不能你的数据库使用GBK,你的页面用UTF-8,而Struts用的是ANSI
    要保持一致才比较好其他的你可以自行处理的
    祝你成功