2012-04-15 3 views
0

J'essaye de développer une application pour rechercher dans Facebook. le problème est que lors de l'utilisation de mots arabes pour rechercher, j'ai obtenu des résultats incorrects (messages non-arabes) J'ai essayé d'encoder le mot arabe avant de le transmettre à l'URL de recherche en utilisant le codage suivant (UTF-8, ISO-8859-6 et Windows-1256), les résultats changent, mais toujours incorrect.Recherche par mot arabe dans facebook usig facebook Graphique API

ce qui suit est le code JAVA que j'utilise:

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; 
} 

Il fonctionne très bien avec l'anglais, mais pas avec l'arabe

Toute aide ou idée sera apprécié

+0

Il serait utile si vous postez le code que vous utilisez pour effectuer une recherche. –

+0

code est maintenant ajouté –

Répondre

0

Je ne sais pas , J'ai essayé ceci:

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

et il semble que cela a bien fonctionné, tous les résultats où je n cette forme: "\ u0645 \ u062d \ u0645 \ u0648 \ u062f"

Quand j'essayez ceci:

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

les résultats ont des caractères réguliers anglais.

Je pense que peut-être votre encodage est ce qui ne va pas, peut-être essayer:

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

C'est une chaîne arabe coder en dur dans l'URL, vérifier si cela fonctionne.

+0

merci pour les soins mais les résultats sont malheureusement incorrects. vous pouvez ouvrir ce profil, il s'agit du premier résultat https://www.facebook.com/100001552568248 –

+0

Premier résultat pour quoi? Je ne comprends pas l'arabe, donc je ne suis pas sûr de ce que vous voulez dire. –

+0

Votre recherche url recherche sur la personne nommée "محمود", mais les résultats de cette recherche n'incluent pas ce nom, ce qui signifie que la recherche n'a pas bien fonctionné, merci –