Java xmlhttp.setRequestHeader不工作
这是我的密码Java xmlhttp.setRequestHeader不工作,java,ajax,servlets,character-encoding,Java,Ajax,Servlets,Character Encoding,这是我的密码 // assume var data has japanese characters xmlhttp.open("POST","adminUpdate?&value="+data,true); // tried GET as well xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); xmlhttp.send(); 如果我插入警报(数据),那么我可以很好地看到日文字符 但在服务器端(
// assume var data has japanese characters
xmlhttp.open("POST","adminUpdate?&value="+data,true); // tried GET as well
xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
xmlhttp.send();
如果我插入警报(数据),那么我可以很好地看到日文字符
但在服务器端(servlet类),当我添加以下代码时:
String query = request.getParameter("value");
system.out.println(query)
现在我看到垃圾的价值
好的,我在服务器端添加了这一行:
System.out.println("content type : "+ request.getContentType());
我得到了这个:text/plain;字符集=UTF-8
现在我的问题是,如果编码设置正确,那么为什么我看不到日文字符呢?一个选项是将查询参数作为请求正文的一部分发送,并将内容类型设置为
application/x-www-form-urlencoded
然后,在获取参数之前,设置
请注意,无论您在哪里打印
查询
值,都必须能够显示UTF-8
编码字符。机器???请解释你的问题。我可以从数据库中看到我的网页中的日文字符,如果我硬编码日文字符,那么我也可以看到以及如何“将查询参数作为请求正文的一部分发送”?@HarendraSinghXmlHttpRequest
有许多send
方法。我想这就是我要做的,使用xmlhttp.send()发送参数就是请求主体;链接的第一个命令是only@HarendraSingh您当前正在做的是将请求参数作为查询字符串的一部分发送。(有一个解决方案,但它更复杂。)相反,将请求参数作为表单参数发送。请参阅重载的方法。@HarendraSingh
request.setCharacterEncoding("UTF-8");
String query = request.getParameter("value");