我用這Ajax代碼將數據發送到服務器:
$.ajax({
data: postData,
type: method,
url: url,
timeout: 20000,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
error: function(jqXHR,textStatus,err){alert("Error returned from ajax call "+err);},
success: function(data,status,jqXHR){
// process response...
}
});
postData
是一個查詢字符串與許多值,而method
是GET
或POST
的問題是當我發送包含值如Älypuhelimen lisävarusteet
的查詢字符串時,數據庫中的結果爲�lypuhelimen lis�varusteet
數據庫連接歸類爲utf-8,這工作正常,當我不使用ajax發佈和保存到數據庫...這絕對是阿賈克斯搞砸了編碼...
我也嘗試使用encodeURIComponent()函數數據,並將其變成%C4lypuhelimen%20lis%E4varusteet
,如果我使用它...這同樣適用於escape()函數...
任何幫助將不勝感激......
對不起你們!問題是後數據本身... postData被解析的函數使用escape()到url轉義所有查詢變量...使用encodeURIComponent()而不是escape()修復了問題... –