1

HTTP コンポーネント (http 用の Java ライブラリ) を使用すると、取得した応答が'として表示されÆ、として-表示されȗます。

4

2 に答える 2

1

わかりました、基本的にはContent-Type、制御できないサーバーからの応答がなく、エンコードの問題が発生しています。

すべての文字列は、その形式に関係なく、java内部的にUnicode 文字列として処理されます。

したがって、問題は、この文字をコンソールまたはファイルに表示する場所にあると思います。

コンソールは、デフォルトの文字セットを使用してそこに文字を出力します。たとえば、私のマシンではMacRomanではなくutf-8です。

したがって、必要なのは、応答から生のバイトを取得し、次のようにすることです。

System.out.println(new String(raw_byte_array, "utf-8"));

また、これは問題にいくつかの光を当てるかもしれません:

http://download.oracle.com/javase/tutorial/i18n/text/string.html

于 2011-06-27T16:48:07.693 に答える
0

最新バージョン 4.x では、以下のようなものを使用して文字セットに依存しません -

HttpEntity entity = response.getEntity();
Charset charset = ContentType.getOrDefault(entity).getCharset();
于 2015-04-01T08:53:22.077 に答える