У меня есть httpservice на устройстве Android. Он формирует ответ как html-страницу в каком-то браузере. Так что это нормально, но если я использую другие языки (например, русский), сервер возвращает нечитаемый текст вместо русских символов. Я знаю, что кодировка по умолчанию на Android - UTF-8. Я пробовал каждую кодировку, доступную на Android (например, windows-1251, Big5 (китайский), UTF-16 и т. Д.), Но он совсем не возвращал результат. Вот код, который покажет вам, что я пытался сделать:Android не имеет соответствующей кодировки
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext httpContext) throws HttpException, IOException {
HttpEntity entity = new EntityTemplate(new ContentProducer() {
public void writeTo(final OutputStream outstream) throws IOException {
OutputStreamWriter writer = new OutputStreamWriter(outstream, "windows-1251");
String resp = "<html><body>Hello Привет</body></html>";
StringEntity se = new StringEntity(resp, "windows-1251");
se.writeTo(outstream);
//writer.write(resp);
//writer.flush();
}
});
response.setHeader("Context-Type", "text/html");
response.setEntity(entity);
}
Таким образом, в браузере я вижу в следующем:
Hello Привет
Что я не так? Пожалуйста, ответь мне. Буду признателен за любые предложения. Благодарю.
Возможно, сервер не поддерживает utf-8 правильно? – Demonick