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 に答える