2013-03-23 112 views

回答

5

正确的是该服务器提供返回页面的编码。 如果确实如此,您将收到正确的一个。 但是,如果它不提供编码Async-http似乎认为UTF-8并且看着代码它似乎不支持提供一个默认的替代。

相关的代码在AsyncHttpResponseHandler

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

如果你想要做的,你需要用户自己AsyncHttpResponseHandler的版本或暗示的补丁可以指定默认编码。

+0

你是对的。我用UTF-8编写了json,问题解决了。谢谢。 – Murat 2013-03-23 22:54:46

+1

AsynchttpClient现在有一个构建方法,它会执行此操作:responseHandler.setCharset(“ISO-8859-1”); – Jordy 2014-06-02 10:21:10

0

我通过修改循环J源代码文件“AsyncHttpResponseHandler.java”解决了这个问题...

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

ISO-8859-1编码会给你正确的字符..