使用HTTP Components(用于http的java库)时,我得到的响应'
显示为Æ
,-
显示为ȗ
。
答案 0 :(得分: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
答案 1 :(得分:0)
使用最新版本4.x,您将使用类似下面的内容与Charset无关 -
HttpEntity entity = response.getEntity();
Charset charset = ContentType.getOrDefault(entity).getCharset();