详细的应用情景是这样的,我有一个已经完成的项目,是用strtus2做的,struts.i18n.encoding被指定为:GBK但现在需要加一个模块进去,这个模块使用到了jquery uploadify的上传文件功能,但是这个的编码却是utf-8的,所以我的服务器端接收到文件名的时候,因为是用strttus2接收的,所以对应的属性会乱码,比如上传中文文件名的时候,得到的文件名(Filename)就是乱码的,我试着想将文件名属性转换成UTF-8,
  new String(name.getBytes("GBK"),"utf-8")
但只有部分转换成功,搜索资料说是因为 GBK和UTF-8编码汉字的字节数不同导致的。所以现在就请大家给个点子,看看怎么可以正确接收这个参数而不乱码,我只需要取得正确的文件名就可以了
但系统的GBK编码是不能改的,上传组件也只支持UTF-8编码上传。

解决方案 »

  1.   

    要不统一用utf-8编码
    要么转换试试
    什么new String(name.getBytes("GBK"),"utf-8")
    new String(name.getBytes("ISO-8859-1"),"utf-8")
    之类的都试试!!
      

  2.   

    要不你把他转换成iso-8859-1
    在把他转换成GBK
      

  3.   

    多谢2位朋友热心回答,
    首先上传组件的编码不能修改,系统的编码GBK也不能修改的,
    所以楼上说方法,小弟都测试过了,不能完美的转换
    我现在改用servletl来接收,不用strtus2接收已经达到效果了,谢谢
    我帖子结了吧