簡體   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