我今天幾乎整天都在爲這個問題苦苦掙扎:Volley的編碼問題?
我使用Volley在Android上發送一個POST請求,參數爲字符串。這個字符串在我的應用程序中發送時似乎很好,但是當它到達PHP服務器時,編碼看起來不同(字符類似於%7D等,用於大括號)。我不確定發生了什麼問題。由於這個json_decode在PHP中失敗,因爲它得到一個語法錯誤。
我已經在客戶端和後端級嘗試了幾件事情。在客戶端上我嘗試了以下方法,但沒有任何效果。
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json; charset=utf-8");
//params.put("Content-Type", "application/json");
return params;
}
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
在服務器端(PHP)我曾嘗試多種方案,以將其更改爲UTF-8等,但沒有什麼工作。
這裏$ data1有%7D等,$ data2變爲空,因爲json_decode失敗。
$ data1 = file_get_contents('php:// input');
$ data2 = json_decode($ data1);
有人可以幫忙嗎?