我正试图解决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