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 回答