int*_*_32 0 java unicode android utf-8
我在我的Android设备(Motorola Defy,2.1)上调试应用程序,该应用程序从网络获取俄语HTML页面,但无法显示它.它显示为链接文本.HTML页面采用UTF-8(100%肯定).源代码:
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://m.rasp.yandex.ru/direction?direction=" + direction);
httpget.setHeader("charset", "utf-8");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String html = httpclient.execute(httpget, responseHandler);
Run Code Online (Sandbox Code Playgroud)
正常显示俄文文本需要什么?对不起英语知识不好.
axt*_*avt 15
httpget.setHeader("charset", "utf-8"); 没有任何意义.
编码由确定BasicResponseHandler.如果未在Content-Type标头中指定响应编码(如您的情况),则BasicResponseHandler假设它是ISO-8859-1,并且无法配置.
所以,你需要实现自己的ResponseHandler另一种默认编码,如下所示:
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
public String handleResponse(final HttpResponse response)
throws HttpResponseException, IOException {
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() >= 300) {
throw new HttpResponseException(statusLine.getStatusCode(),
statusLine.getReasonPhrase());
}
HttpEntity entity = response.getEntity();
return entity == null ? null : EntityUtils.toString(entity, "UTF-8");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5899 次 |
| 最近记录: |