我在从http获取请求中获取希伯来字符时遇到问题。
我得到这样的方形字符:“[]”而不是希伯来字符。
英文字符正常。
这是我的功能:
public String executeHttpGet(String urlString) throws Exception {
BufferedReader in = null;
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(urlString));
HttpResponse response = client.execute(request);
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"UTF-8"));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String page = sb.toString();
// System.out.println(page);
return page;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
您可以通过此示例测试url:
String str = executeHttpGet("http://kavim-t.co.il/include/getXMLStations.asp?parent=7_%20_1");
谢谢!
答案 0 :(得分:5)
您链接的文件似乎不是UTF-8
。我测试过它使用WINDOWS-1255
(希伯来语编码)正确打开,您应该尝试使用UTF-8
而不是{{1}}。
答案 1 :(得分:0)
尝试使用其他网站,看起来它不使用UTF-8。或者,UTF-16 可以工作,但我还没有尝试过。你的代码看起来很好。
答案 2 :(得分:0)
正如其他人所指出的,内容实际上并未编码为UTF-8。您可能希望查看httpEntity.getContentType()
以提取内容的实际编码,然后将其传递给InputStreamReader
。这意味着您的代码将能够正确处理任何编码。
答案 3 :(得分:-1)
hi发布在另一个问题Special characters in PHP / MySQL
中你可以在他们设置utf-8的例子中设置php文件中的字符,但你可以设置一个支持你需要的字符的不同类型。