我有蟒蛇以下RESTful客戶端:阿拉伯語編碼錯誤
import requests;
s= 'وإليك ما يقوله إثنان من هؤلاء';
resp = requests.post('http://localhost:8080/MyApp/webresources/production/sendSentence', json={'sentence': s,})
的aforementionned代碼調用Java中實現的web服務,返回從請求客戶端發送相同的句子。
這是Java Web服務:
@POST
@Consumes("application/json")
@Produces("text/html; charset=UTF-8")
@Path("/sendSentence")
public String sendSentence(@Context HttpServletRequest requestContext, String valentryJson) throws Exception {
try {
if (valentryJson != null) {
JSONObject jsonObject;
jsonObject = new JSONObject(valentryJson);
String sentence = jsonObject.getString("sentence");
return sentence;
}
} catch (JSONException ex) {
}
return "";
}
問題是編碼,因爲當我嘗試打印的內容是這樣的結果:
>>> resp.content
'\xd9\x88\xd8\xa5\xd9\x84\xd9\x8a\xd9\x83 \xd9\x85\xd8\xa7 \xd9\x8a\xd9\x82\xd9\x88\xd9\x84\xd9\x87 \xd8\xa5\xd8\xab\xd9\x86\xd8\xa7\xd9\x86 \xd9\x85\xd9\x86 \xd9\x87\xd8\xa4\xd9\x84\xd8\xa7\xd8\xa1'
或當我使用打印:
>>> print resp.content
ظˆط¥ظ„ظٹظƒ ظ…ط§ ظٹظ‚ظˆظ„ظ‡ ط¥ط«ظ†ط§ظ† ظ…ظ† ظ‡ط¤ظ„ط§ط،
您沒有解碼內容。據推測這是Python 2? –
我試圖解碼它使用resp.content.decode('utf8')它不起作用 –
是的,它是蟒蛇2.6.5 –