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