[英]Javascript UTF-8 encoding not working if i send data via Ajax call to a Servlet
Ajax调用
$.ajax({
url : URL_SERVER + "SucheMitarbeiter",
type : "GET",
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
data : {
userid : setzeUserId,
nachname : nachname,
vorname : vorname,
kim : "",
pnr : ""
},
cache : false,
[...]
这是对我的Servlet的请求
Request URL: http://localhost:8080/TrackingToolDB/SucheMitarbeiter?userid=BKOUBIK&nachname=sch%C3%B6nleber&vorname=&kim=&pnr=&fk
你可以看到,Nachname没有编码为UTF-8。
在我的Servlet中,我称之为SucheMitarbeiter解码请求:
String encoding = request.getCharacterEncoding();
if (encoding == null) encoding = "UTF-8";
String nachname = request.getParameter("nachname");
nachname = URLDecoder.decode(nachname,encoding);
但它不起作用。 我总是得到
schönleber而不是schönleber
将contentType
设置为ajax请求的一部分只是告诉接收服务器您要发送什么,它不会做任何改变数据的事情 - 您需要先通过适当的编码函数传递它。
您可能会发现此链接很有用: MDN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.