繁体   English   中英

如果我通过Ajax调用将数据发送到Servlet,Javascript UTF-8编码无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM