首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

FileUpload 1.0 上传资料 中文文件名乱码

2012-06-28 
FileUpload 1.0 上传文件 中文文件名乱码步入2011年末了,可是公司一直都还是使用的旧平台框架.struts1.1

FileUpload 1.0 上传文件 中文文件名乱码

步入2011年末了,可是公司一直都还是使用的旧平台框架.

struts1.1 很老的框架了,有些细小的bug在开发中会遇到

?

现在记录一下struts1.1中自带的fileupload.jar 1.0版本的问题

该jar组件用于实现文件上传,在实际开发中发现,当上传中文文件名的时候,server端会发生中文文件名乱码的问题.刚开始以为是浏览器的问题,但是使用http监听查看报文收发,截取了字节出来查看,发现浏览器端确实是使用page页面指定的编码进行上传文件名的编码的.

?

这就说明是server端的问题了,跟踪平台代码一路调试,从filter一路调试到公司平台的Action实现,发现是在struts的公共上传处理后,文件名发生的乱码,说明不是filter,也不是公司通用Action造成的.

?

由于struts1.1使用了fileupload组件,于是在网上搜寻了一些相关的资料,均得不到正确的指导,很多人都说直接使用getByte("GBK")来处理乱码,但这种写死编码的风格,不是我喜欢的.于是google中文未果的情况下,无奈到apache官网查看buglist,终于找到了下面的bug:

?

https://issues.apache.org/jira/browse/FILEUPLOAD-13

?

根据文中所说,1.0版本确实是按照平台自己的编码去进行解码的,而不是使用request中指定的编码,此bug在1.1版本中得到了解决,于是下载了1.1.1版本的fileupload,试了一下,终于搞定中文乱码问题了.

?

解决问题后不禁一番感慨,确实公司的平台太落后了,还用着10年前的struts,公司一直依附的银行系统也是一直指定ie6浏览器作为内部系统标准浏览器.有时候看到html5和css3,除了流口水还是流口水...

?

看来要找个机会改造下公司的平台了,最起码把项目组所用到的平台先升级了,太out了

热点排行