我正試圖解決Android應用程序中的問題。該應用向Web服務發佈HTTP請求。當請求中的文本包含瑞典字符Å,Å和Ö時,它不起作用。擁有Web服務的人說,這是因爲請求必須以UTF-8編碼,並且他們說這不是。如何知道我的HTTP請求是否使用UTF-8?
該應用程序使用org.apache.http.impl.client.DefaultHttpClient,並且我假設這一行說應該使用UTF-8:HttpProtocolParams.setContentCharset(params,「UTF-8」);
我用Wireshark來看到該應用發送的內容,和字符串 「TeståäöÅÄÖéüà」 被示出爲: 「測試\ 345 \ 344 \ 366 \ 305 \ 304 \ 326 \ 351 \ 374 \ 340」
我發現by this table這些數字是字符的「Unicode代碼點」的八進制表示。這是UTF-8以外的東西,對吧?
是這樣的,如果它是UTF-8,那麼特殊字符將由兩個字節表示,例如, 「å」的「c3 a5」和「ä」的「c3 a4」?
因此:
1.我對Unicode和UTF-8的理解是否正確?
2.我是否正確地發送了什麼不是UTF-8編碼?
3.如何使DefaultHttpClient以UTF-8發送?
喬恩
你是在請求URL(例如'查詢'部分)還是請求正文中談論UTF-8? – 2011-05-11 12:11:54
我想在身體。我怎麼知道? – prograde 2011-05-11 14:32:19