0
我正在登录页面上有一个ententType multipart/formdata的形式,其中包含用户输入任何语言的数据的输入字段。我正在使用ajax(FormData)将数据发送到服务器,在服务器我没有正确获取数据,因为我无法转换为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);
}
}
}
我不得不设置的ContentType:假的,因为我不能正确处理多数据。 – Krish