详细的应用情景是这样的,我有一个已经完成的项目,是用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编码上传。
new String(name.getBytes("GBK"),"utf-8")
但只有部分转换成功,搜索资料说是因为 GBK和UTF-8编码汉字的字节数不同导致的。所以现在就请大家给个点子,看看怎么可以正确接收这个参数而不乱码,我只需要取得正确的文件名就可以了
但系统的GBK编码是不能改的,上传组件也只支持UTF-8编码上传。
要么转换试试
什么new String(name.getBytes("GBK"),"utf-8")
new String(name.getBytes("ISO-8859-1"),"utf-8")
之类的都试试!!
在把他转换成GBK
首先上传组件的编码不能修改,系统的编码GBK也不能修改的,
所以楼上说方法,小弟都测试过了,不能完美的转换
我现在改用servletl来接收,不用strtus2接收已经达到效果了,谢谢
我帖子结了吧