繁体   English   中英

如何设置httpclient的字符编码

[英]How to set character encoding of httpclient

我正在使用此httpclient: http : //loopj.com/android-async-http/我正在使用此httpclient获取json。 我想设置此httpclient的字符编码。 客户端返回的JSONObject包含土耳其字符,例如şğöü。 但它已损坏,我无法查看此字符。

如何设置此httpclient的字符编码?

正确的方法是服务器提供返回页面的编码。 如果这样做,您将收到正确的一个。 但是,如果它不提供编码,则Async-http似乎假定使用UTF-8并查看代码,它似乎不支持提供默认的替代代码。

AsyncHttpResponseHandler中的相关代码:

// Interface to AsyncHttpRequest
void sendResponseMessage(HttpResponse response) {
    ...
    responseBody = EntityUtils.toString(entity, "UTF-8");

如果要执行此操作,则需要使用自己的AsyncHttpResponseHandler版本,或者建议使用补丁程序以指定默认编码。

我通过修改loopj源代码文件“ AsyncHttpResponseHandler.java”解决了此问题。

void sendResponseMessage(HttpResponse response){
      .........
      //responseBody = EntityUtils.toString(entity, "UTF-8");
        responseBody = EntityUtils.toString(entity, "ISO-8859-1");
}

ISO-8859-1编码将为您提供正确的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM