httpclient4乱码问题

今天在开发调用第三方接口的时候,使用HTTPCLIENT4调用后返回的结果中中文都是乱码,蛋疼的乱码问题又来了!我一开始使用的是:java

<!-- lang: java -->
String result = new String(EntityUtils.toString(entity,"UTF-8"));

获取返回值的,结果是乱码,咨询了第三方公司后,他们表示他们的返回的结果已是UTF-8编码, 因而我直接使用:编码

<!-- lang: java -->
String result = new String(EntityUtils.toString(entity));

悲剧的是返回值仍是乱码! 后来我试了试:code

<!-- lang: java -->
ByteArrayOutputStream baos = new ByteArrayOutputStream();
	while((len = is.read(b)) !=  -1){
		baos.write(b, 0, len);
	}
System.out.println("baos="+new String(baos.toByteArray()));

此次不乱了,查看了下EntityUtils.toString源码,发现若是不指定编码,EntityUtils默认会使用ISO_8859_1进行编码,因此若是服务端直接返回 是UTF-8编码的值能够进行以下转码:接口

<!-- lang: java -->
String result = new String(EntityUtils.toString(entity).getBytes("ISO_8859_1"),"UTF-8");

这样能够直接使用EntityUtils.toString方法了! 呵呵开发

相关文章
相关标签/搜索