0

我正在尝试开发一个在 Facebook 中搜索的应用程序。问题是,当使用阿拉伯语单词进行搜索时,我得到了不正确的结果(非阿拉伯语帖子)我尝试在使用以下编码(UTF-8、ISO-8859-6 和 Windows)将阿拉伯语单词传递给搜索 URL 之前对其进行编码-1256),结果发生了变化,但仍然不正确。

以下是我使用的 JAVA 代码:

public JSONObject search(String strSearchPhrase, String strType) throws MalformedURLException, IOException {

    strSearchPhrase = URLEncoder.encode(strSearchPhrase, "ISO-8859-6");

    URL searchURL = new URL("https://graph.facebook.com/search?q=" + strSearchPhrase + "&type=" + strType + "&access_token=" + strAccessToken);

    URLConnection urlCon = searchURL.openConnection();

    BufferedReader buffReader = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));

    String strInputLine;

    String strOutput = "";

    while ((strInputLine = buffReader.readLine()) != null) {
        strOutput = strOutput + strInputLine;
    }
    buffReader.close();
    Object objOutput = JSONValue.parse(strOutput);
    JSONObject jsonOutput = (JSONObject)objOutput;

    //return data;
    return jsonOutput;
}

它适用于英语但不适用于阿拉伯语

任何帮助或想法将不胜感激

4

1 回答 1

0

我不知道,我试过这个:

curl "https://graph.facebook.com/search?q=محمود‎&type=user&access_token=xxxx"

它似乎工作正常,所有结果都以这种形式出现:“\u0645\u062d\u0645\u0648\u062f”

当我尝试这个时:

curl "https://graph.facebook.com/search?q=bob&type=user&access_token=xxxx"

结果有常规的英文字符。

我在想也许你的编码有问题,也许试试:

URL searchURL = new URL("https://graph.facebook.com/search?q=محمود‎&type=" + strType + "&access_token=" + strAccessToken);

那是将阿拉伯字符串硬编码到 url 中,检查是否有效。

于 2012-04-15T14:52:57.693 回答