英文文本和数字正确显示在结果字符串中,但我希望显示的其他字母不正确。而不是它们有一系列符号,如& - # - 1080; ... 我试图在我的InputStreamReader上设置UTF-8,但它没有效果。感谢任何帮助。 这是代码:
public class HttpClient {
private static String BASE_URL = "here url";
public String getData(String number) {
HttpURLConnection con = null ;
InputStream is = null;
try {
con = (HttpURLConnection) ( new URL(BASE_URL + number)).openConnection();
con.setRequestMethod("GET");
con.setDoInput(true);
con.setDoOutput(true);
con.connect();
// Let's read the response
StringBuffer buffer = new StringBuffer();
is = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
String line = null;
while ( (line = br.readLine()) != null )
buffer.append(line + "\r\n");
is.close();
con.disconnect();
return buffer.toString();
}
catch(Throwable t) {
t.printStackTrace();
}
finally {
try { is.close(); } catch(Throwable t) {}
try { con.disconnect(); } catch(Throwable t) {}
}
return null;
}
}
------------
JSONObject jb = new JSONObject(data);
JSONArray jr = jb.getJSONArray("items");
JSONObject c = jr.getJSONObject(0);
String id = c.getString(TAG_ID);
String images = c.getString(TAG_IMAGES);
String title = new String(c.getString(TAG_TITLE).getBytes("ISO-8859-1"), "UTF- 8");//tried this - didn't help
String text = c.getString(TAG_TEXT);`
答案 0 :(得分:0)
你确定答案是UTF-8吗?
尝试在浏览器中点击URL并查看HTTP响应标头,我猜它不是UTF-8。
有很多图书馆可以帮助处理网络服务请求。其中一个较低级别的库是http-client。我建议你使用这个(或更高级别的抽象),而不是直接使用HttpURLConnection。
答案 1 :(得分:-1)
如果从php web服务创建json,请使用此代码
echo utf8_encode(json_encode($result));