近期马上移交一个项目,就差附件上传得时候中文的附件名称显示出来老是乱码,请高手解决 多谢前提我用得是UTF-8编码:在jsp页面头部有<%@ page contentType="text/html; charset=UTF-8"%>相关代码如下:其中我也设置了:request.setCharacterEncoding("gbk"); 
但是用起来不管用
RequestContext requestContext = new ServletRequestContext(request); if(FileUpload.isMultipartContent(requestContext)){  //get the uploading execel file, and write to temp dir .
FileItemFactory filefactory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(filefactory); //upload.setHeaderEncoding("GBK"); List items = upload.parseRequest(request);
Iterator iter = items.iterator();  while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); //if it is file field, save the uploading file
    if (!item.isFormField()) { String fieldName = item.getFieldName(); if ( fieldName.equalsIgnoreCase( "order_attached_file_url" ) ) {
   upfilename =  item.getName()  ;

   //process orderAttached
   if  ( upfilename != null && ! upfilename.trim().equals( "" ) ) {
   int k = -1 ;
   k = upfilename.lastIndexOf( File.separator );  //File.separator
   if ( k  == -1 ) {
   attachedFileName = upfilename.trim() ;
   }
   else {
   attachedFileName = upfilename.substring( k + 1 ).trim() ;
   }
   }
   else { // no file attached
   attachedFileName = "" ;
   }    attachedFileName = attachedFileName.replace(':', '_' ) ;
   attachedFileName = attachedFileName.replace( File.separatorChar , '_' ) ;    if ( attachedFileName != null && ! attachedFileName.trim().equals("") ) {
    //save to temp file
    realServerPathFileName = request.getRealPath( File.separatorChar + "ecatic" + File.separatorChar + "temp" + File.separatorChar +  attachedFileName );
File newFile = new File( realServerPathFileName );
item.write(newFile);
   }    order_attached_file_url =  realServerPathFileName ;

}
在线等 :

解决方案 »

  1.   

    速请高手指点阿在ServletFileUpload 创建实例时是否可以通过他的参数来控制中文乱码的出现阿
      

  2.   

    到这里看看嘛http://www.jspcn.net/htmlnews/20050115.html
      

  3.   

    FileItemFactory filefactory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(filefactory);
    upload.setHeaderEncoding("UTF-8");//一定要设定
      

  4.   

    多谢kkgogo(kkgogo)   真灵  多谢多谢是否可把QQ留下 便以后交流  QQ:174672028