HTTP コンポーネント (http 用の Java ライブラリ) を使用すると、取得した応答が'
として表示されÆ
、として-
表示されȗ
ます。
1227 次
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 に答える