2014-02-25 40 views
0

我正在登录页面上有一个ententType multipart/formdata的形式,其中包含用户输入任何语言的数据的输入字段。我正在使用ajaxFormData)将数据发送到服务器,在服务器我没有正确获取数据,因为我无法转换为unicode。我已将页面编码设置为utf-8。我想这有问题的标题。 有人请帮助我。如何通过Ajax发送unicode字符到servlet?

这里是我的代码:

客户:

    var formdata=new FormData(); 
        formdata.append("servname",servname); 
        formdata.append("disptype1",disptype1); 
        formdata.append("text",text); 
        formdata.append("back",back); 
        formdata.append("servtype",servtype); 
        formdata.append("caption",caption); 
        formdata.append("selsubservices",selsubservices); 
        formdata.append("action","addinfo"); 
        formdata.append("iconfile",iconfile); 
        $.ajax({ 
         type: "POST", 
         url: 'settingServlet', 
         data: formdata, 
         //dataType: 'json', 
         //contentType: "multipart/form-data", 
         //processData: false, 
         contentType:false, 
         processData:false, 
         success: function (response) {  
          processAddResponse(response); 
         }, 
         error: function (error) { 
          alert("Error occured at" +error); 
         } 
        }); 

服务器:

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
      if (isMultipart) 
       { 
       DiskFileItemFactory factory = new DiskFileItemFactory(); 
       ServletFileUpload uploads = new ServletFileUpload(factory); 
       List<FileItem> formItems = uploads.parseRequest(request); 
       if (formItems != null && formItems.size() > 0) 
        { 
        for (FileItem item : formItems) 
         { 
         if (item.isFormField()) 
          { 
          //upload formdata except files 
          String fieldname = item.getFieldName(); 

          if (fieldname.equals("roomname")) 
          { 
          name = item.getString();//data corrupts here. 
          name = new String(roomname.getBytes("iso-8859-1"),"UTF-8"); 
          name = convert(roomname); 
          name = JUtility.toHTML(roomname); 
          } 
         } 
        } 

回答

0

确保您设置的contentType元素在阿贾克斯选项如下记载:

https://api.jquery.com/jQuery.ajax/

我不认为你正确地使用它,现在(不知道是什么contentType:false,实际上没有)

+0

我不得不设置的ContentType:假的,因为我不能正确处理多数据。 – Krish