Jak mogę zmienić kodowanie zestawu znaków w odpowiedzi HTTP w Javie

Muszę pobrać jakiś obiekt JSON ze zdalnego serwera i do tego używam tej funkcji, która działa świetnie, z wyjątkiem tego, że przez jakiś czas pobierane są dziwne dane, które, jak sądzę, wynikają z używania zestawu znaków ASCII do dekodowania.

Poniżej znajduje się metoda, której używam

public HttpResponse call(String serviceURL,String serviceHost,String namespace,String methodName,String payloadKey, String payloadValue) throws ClientProtocolException,IOException,JSONException
    {
            HttpResponse response = null;
            HttpContext HTTP_CONTEXT = new BasicHttpContext();
            HTTP_CONTEXT.setAttribute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0");
            HttpPost httppost = new HttpPost(serviceURL);
            httppost.setHeader("User-Agent",Constants.USER_AGENT_BROWSER_FIREFOX);
            httppost.setHeader("Accept", "application/json, text/javascript, */*");
            httppost.setHeader("Accept-Language","en-US,en;q=0.8");
            httppost.setHeader("Content-Encoding", "foo-1.0");
            httppost.setHeader("Content-Type", "application/json; charset=UTF-8");
            httppost.setHeader("X-Requested-With","XMLHttpRequest");
            httppost.setHeader("Host",serviceHost);
            httppost.setHeader("X-Foo-Target", String.format("%s.%s", namespace,methodName));
            /*Making Payload*/
            JSONObject objectForPayload = new JSONObject();
            objectForPayload.put(payloadKey, payloadValue);
            StringEntity stringentity = new StringEntity(objectForPayload.toString());
            httppost.setEntity(stringentity);
            response = client.execute(httppost);
            return response;


    }

Wszystkie te nagłówki, które przekazuję, są poprawne i zweryfikowałem je za pomocą elementu inspect w Google Chrome lub wtyczce Firebug, jeśli znasz Mozillę.

Teraz problem polega na tym, że przez większość czasu otrzymuję czytelne dane, ale czasami otrzymuję nieczytelne dane.

Debugowałem przy użyciu eclipse i zauważyłem, że zestaw znaków pod wrappedEntity jest wyświetlany jako „US-ASCII”. Dołączam plik jpg w celach informacyjnych

Czy ktoś może mi powiedzieć, jak mogę zmienić zestaw znaków z ASCII na UTF-8 odpowiedzi, zanim to zrobięresponse = client.execute(httppost); . PS: Jak zauważyłeś, przekazuję charset = utf-8 w nagłówku i już sprawdziłem używając firebug i google chrome, że przekazuję dokładne nagłówki.

Powiększ, aby zobaczyć obraz bardziej wyraźnie

Z góry dziękuję

questionAnswers(4)

yourAnswerToTheQuestion