2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 解决ServletFileUpload上传文件时 获取上传文件名出现中文乱码问题

解决ServletFileUpload上传文件时 获取上传文件名出现中文乱码问题

时间:2022-09-07 21:08:50

相关推荐

解决ServletFileUpload上传文件时 获取上传文件名出现中文乱码问题

解决ServletFileUpload上传文件时,获取上传文件名出现中文乱码问题

在我们使用ServletFileUpload上传文件时,我们通常会获取其上传的文件名,然而当文件名包含中文时,便可能出现乱码.如:

而这个问题明显属于编码问题,我们出现乱码的代码如下:

protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {if(ServletFileUpload.isMultipartContent(request)){//判断是否为多段数据FileItemFactory firlfact = new DiskFileItemFactory();ServletFileUpload sfu = new ServletFileUpload(firlfact);try {List<FileItem> list = sfu.parseRequest(request);for (FileItem fileItem : list) {if(fileItem.isFormField()){System.out.println(fileItem.getName());System.out.println(fileItem.getString("utf-8"));}else {fileItem.write(new File("e:\\"+fileItem.getName()));}}} catch (FileUploadException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}

我们可以发现,ServletFileUpload使用了request,所以我们只需要在代码开头加上一句:

request.setCharacterEncoding("utf-8");

即可解决该问题.

重新部署工程之后,便不会出现乱码问题了.

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