虽然说是老问题,可我google了好久也没见有人提出真正的解决方法。
我页面前后台都是用gbk编码。在后台无论怎么转换提交的中文参数,都没办法,怎么弄都是乱码。
不知道有谁解决过,帮忙指点下,谢谢!

解决方案 »

  1.   

    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
      if(isMultipart==true){
          try{
           FileItemFactory factory = new DiskFileItemFactory();
           ServletFileUpload upload = new ServletFileUpload(factory);
           List<FileItem> items = upload.parseRequest(request);//得到所有的文件
           Iterator<FileItem> itr = items.iterator();
            while(itr.hasNext()){//依次处理每个文件
             FileItem item=(FileItem)itr.next();
             String fileName=item.getName();//获得文件名,包括路径
             if(item.isFormField()){
              if(item.getFieldName().equals("sjr")){
              emailbean.setSjr(new String(item.getString().getBytes("ISO-8859-1"),"gb2312"));
                  }
              if(item.getFieldName().equals("subject")){
              emailbean.setSubject(new String(item.getString().getBytes("ISO-8859-1"),"gb2312"));
                  }
              if(item.getFieldName().equals("content")){
              emailbean.setContent(new StringUtils().gethtmlEscape(new String(item.getString().getBytes("ISO-8859-1"),"gb2312")));
                  }
             }
             if(fileName!=null){
                 File fullFile=new File(item.getName());
                 filelist.add(fullFile.getName());
                 String changname=""+new Date().getTime();
                 int pos = fullFile.getName().lastIndexOf(".");
                        if(pos<0){
                            throw new FileUploadException("获取扩展名失败!");
                        }
                     String extName = fullFile.getName().substring(pos);
                     changname+=extName;//文件重命名
                     filename1.add(changname);
                 File savedFile=new File(uploadPath,changname);
                 item.write(savedFile);
             }
            }
          }
          catch(Exception e){
             e.printStackTrace();
          }
      }
     
      else{
          out.println("the enctype must be multipart/form-data");
          return;
      }
      

  2.   

    楼上的兄弟,你的代码里emailbean是什么?而且你也没有处理上传文件的中文名啊。