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方法了! 呵呵開發

相關文章
相關標籤/搜索