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()方法对信息流重新编码
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()方法对信息流重新编码
相关文章推荐
- Servlet文件上传(ServletFIleUpload,DiskFileItemFactory,FileItem)
- 用fileupload处理文件上传
- jsp+servlet 文件上传 解决中文乱码问题
- 使用ServletFileUpload 实现文件上传 和获取文件信息
- commons-fileupload 上传文件乱码问题
- Servlet使用commons-fileupload实现文件上传
- 使用servletfileupload实现表单文件和数据的一起上传
- 使用common-fileUpload和 Spring中MultipartHttpServletRequest实现文件上传
- java 上传包 commons-fileupload-1.2.jar处理上传文件
- Servlet:实现多个文件上传,上传中文文件乱码解决办法
- JSP Servlet学习笔记——使用fileupload上传文件
- 用fileupload处理文件上传
- commons-fileupload-1.2同时上传文件和文字的servlet实例(原创)
- 【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题
- Servlet上传文件直接处理方式
- ajax异步文件上传,servlet处理,含demo
- Struts2 中用Fileupload上传文件得不到HttpServletRequest值的解决办法
- Spring MultipartResolver 和ServletFileUpload 冲突导致获取不到上传文件的url
- jsp页面上传文件到servlet获取到路径中有中文出现乱码
- servlet 上传文件 参数中文乱码