当使用 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 回答