2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > servlet中使用ServletFileUpload 出现中文乱码的解决方案

servlet中使用ServletFileUpload 出现中文乱码的解决方案

时间:2022-04-25 07:46:35

相关推荐

servlet中使用ServletFileUpload   出现中文乱码的解决方案

选择了commons fileupload这个上传组件

但是,不仅有文件名称的中文乱码,还有非文件的表单字段的乱码

So:

//1_创建DiskFiletemFactory对象 设置允许上传文件大小DiskFileItemFactory factory = new DiskFileItemFactory();factory.setSizeThreshold(1024*1024*200);//允许上传文件最大为200M//2_创建ServletFileUpload uploadServletFileUpload upload = new ServletFileUpload(factory);//处理上传文件的路径乱码upload.setHeaderEncoding("UTF-8");//3_因为form表单中设置了enctype="multipart/form-data"属性//所以通过upload解析request,得到集合<FileItem>//FileItem代表什么?工具将请求体中每对分割线中间的内容封装为一个FileItem对象 List<FileItem> list = upload.parseRequest(request);//4_遍历集合for(FileItem item : list) {//然后对获取的FileItem执行如下转码方式//new String(item.getString("UTF-8"));//配合upload.setHeaderEncoding("UTF-8");使用String name = item.getFieldName();//表单名称String value = new String(item.getString("UTF-8"));//表单内容 + 处理乱码}

一、解决上传文件的路径乱码问题:

ServletFileUpload upload = new ServletFileUpload(factory);

//处理上传文件的路径中文乱码

upload.setHeaderEncoding(“UTF-8”);

二、解决表单字段的中文乱码:

new String(item.getString(“UTF-8”));

比如其中一项表单:

String value = new String(item.getString(“UTF-8”));

以此类推。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。