У конкретному випадку це порівняно просто, але в загальному випадку досить складно.
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://stackoverflow.com/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println(EntityUtils.getContentMimeType(entity));
System.out.println(EntityUtils.getContentCharSet(entity));
Відповідь залежить від Content-Type
заголовка відповіді HTTP .
Це заголовок містить інформацію про корисне навантаження та може визначати кодування текстових даних. Навіть якщо ви припускаєте типи тексту , вам може знадобитися перевірити сам вміст, щоб визначити правильне кодування символів. Наприклад, перегляньте специфікацію HTML 4 для отримання детальної інформації про те, як це зробити для конкретного формату.
Після того, як відомо кодування, InputStreamReader може бути використаний для декодування даних.
Ця відповідь залежить від того, як сервер робить правильно - якщо ви хочете обробити випадки, коли заголовки відповідей не відповідають документу або декларації документа не відповідають кодованому кодуванню, це ще один чайник з рибою.