您的位置:首页 > 编程语言 > Java开发

Servlet上传文件乱码处理(ServletFileUpload乱码处理)

2017-05-11 17:58 1736 查看
在使用ServletFileUpload可以接收包含文件的表单,但是对于表单中的中文处理,网上大多只给一步
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8"); 或者
upload.setHeaderEncoding("ISO8859_1");
//然后对获取的FileItem执行如下转码方式
new String(item.getString().getBytes("ISO8859_1"),"UTF-8");

个人实际使用时,第一种方法对于表单中的中文依然显示乱码

第二种方法又太麻烦,经过查询相关文档,可以找到,FileItem的getString()方法有重载的方法,如下

getString(String arg0):String - FileItem

因此,第二种方法完全可以优化为一下方法
upload.setHeaderEncoding("UTF-8");
//然后对获取的FileItem执行如下转码方式
new String(item.getString("UTF-8");但是不能理解setHeaderEncoding()为什么不能对信息内容编码,暂且理解为它无法对request中的数据流编码,因此字符串获取数据流时需要用重载的getString()方法对信息流重新编码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息