私はAndroidデバイスにhttpserviceを持っています。一部のブラウザへのHTMLページとして応答を形成します。したがって、正常に動作しますが、他の言語(ロシア語など)を使用すると、サーバーはロシア語の記号の代わりに読み取り不可能なテキストを返します。AndroidのデフォルトのエンコーディングはUTF-8であることを知っています。Androidで利用可能なすべてのエンコーディング(たとえば、windows-1251、Big5(Chinese)、UTF-16など)を試しましたが、まったく間違った結果が返されました。これが私がやろうとしたことを示すいくつかのコードです:
@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 Привет
何が間違っていますか?私に答えてください。何か提案をいただければ幸いです。ありがとう。