title: Retrieving Arabic text from editText in Android
body: <p>I have an application in Android witch has an editText that takes Arabic text. Then based on this Arabic text i make a query in MySQL through php. The problem is that when i retrieve the Arabic text from the editText MySQL query returns null but when i write the Arabic text manually in the program (not retieving it from the editText) it works perfect and god. What is the problem any one can help me.
  Thanks.</p>
  
  <p>This is my php code</p>
  
  <pre><code>&lt;?php
  header("Content-type: text/html; charset=UTF-8");
  $con=mysqli_connect("localhost","root","","smd");
  // Check connection
  if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  $word = $_REQUEST['filter'];
  //$word="قط"; if i write here the Arabic word manually the query works fine 
  mysqli_query($con,"SET CHARACTER SET utf8");
  $result = mysqli_query($con,"SELECT * FROM arwn_synset,arwn_gloss WHERE word='$word' AND arwn_synset.synset_id_ar=arwn_gloss.synset_id_ar");
  while($row = mysqli_fetch_assoc($result)) {
    $output[]=$row;
    }
  echo json_encode($output);
  ?&gt;
  </code></pre>
  
  <p>This is the Android code:</p>
  
  <pre><code>//Getting the synset from the user to look for
          EditText SynsetEditText = (EditText) findViewById(R.id.synsetEditText);
          String synsetString = SynsetEditText.getText().toString();
          //Removing white space from the beginning and end of the string
          synsetString=synsetString.trim();
          //synsetString="قط"; if i write here the Arabic word manually the query works fine 
          myIntent = new Intent(MainActivity.this,AWNActivity.class);
          myIntent.putExtra("synset", synsetString); 
          startActivity(myIntent); 
  </code></pre>
  
  <p>This is in AWNActivity.java:</p>
  
  <pre><code>String url="http://"+localHost+"/smd/connectA.php";  
              JSONasyncTask asynctask=new JSONasyncTask(); 
              asynctask.execute(url);
  
  
  private class JSONasyncTask extends AsyncTask&lt;String, Void,JSONArray&gt; 
  {
      @Override
      protected JSONArray doInBackground(String... urls)  
      {           
          Connect connect=new Connect();
          JSONArray jsonArray=connect.ConnectToRESTful(urls[0],synsetString);
          return jsonArray; 
      }
      @Override
      protected void onPostExecute(JSONArray jsonArray) 
      {  
        if(jsonArray!=null)
              {
               // Do something
              }
      }
  }
  
  
  public JSONArray ConnectToRESTful(String url,String[] wordList)
  {
      //the synset data to send
      String result = "";
  
      ArrayList&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;();
      for (int i=0;i&lt;wordList.length;i++)
          nameValuePairs.add(new BasicNameValuePair("filter",wordList[i]));
      InputStream is = null;
  
      //http post
      try
      {
              HttpClient httpclient = new DefaultHttpClient();
              HttpPost httppost = new HttpPost(url); 
              httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
              HttpResponse response = httpclient.execute(httppost);
              HttpEntity entity = response.getEntity();
              is = entity.getContent(); 
      }
      catch(Exception e)
      {
          Log.e("There is a problem. Error in http connection\n", e.toString());
      }
      //convert response to string
      try
      {
          BufferedReader reader = new BufferedReader(new InputStreamReader(is));
          StringBuilder sb = new StringBuilder();
          String line = null;
          while ((line = reader.readLine()) != null) 
          {
                  sb.append(line + "\n");  
          }
          is.close(); 
  
          result=sb.toString();
      }
      catch(Exception e)
      {
          Log.e("There is a problem. Error converting result.\n", e.toString());
      }
  
      JSONArray jsonArray = null;   
      try
      {
          jsonArray = new JSONArray(result);
      } 
      catch (JSONException e) 
      { 
          Log.e("There is a problem.\n", e.toString());
      }
      return jsonArray;
  }
  </code></pre>