2016-03-20 5 views
2

Wenn ich versuche, Datensatz von hebräischen Feld zu finden, gibt es keine Daten zurück, wenn meine Abfrage ausgeführt wird. Trotz der Tatsache, dass, wenn ich die gleiche Abfrage in meinem wampserver einfügen die Antwort die Rechte zurückgeben!SQL-Abfrage in Android erkennt nicht hebräische Buchstaben trotz in Wamp-Server tut es

Ich definiere die Tabelle und die Felder als utf8_general_ci und immer noch das Problem aufgetreten. bitte hilfe.

public ArrayList<String> findPartnersFast(String semester , String course , String city) { 
     String currentQuery = "SELECT * FROM fast_reg " + "WHERE course = " + "'" + "מבוא למקרוכלכלה" + "'" ; 
     ArrayList<String> arrayOfResults = new ArrayList<String>(); 
     try { 
      statement = connection.createStatement(); 
      res = statement.executeQuery(currentQuery); 
      Log.d("DBmanipulation" , currentQuery); 
      while(res.next()) { 
       Log.d("DBmanipulation" , "in while loop!"); 
       String temp = res.getString("student_name"); 
       arrayOfResults.add(temp); 
       Log.d("DBmanipulation", "name: " + temp); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (res != null) { 
        res.close(); 
       } 
      } catch (Exception e) { 

      } 
     } 
     return arrayOfResults; 
    } 

LOG:

03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct D/Register: In BackGround 
03-20 20:29:09.400 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: conneting to Database... 
03-20 20:29:09.532 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: Connection Successful 
03-20 20:29:09.550 3593-4082/com.example.uvalerx073037.finalproject_correct D/DBmanipulation: SELECT * FROM fast_reg WHERE course = 'מבוא למקרוכלכלה' 
03-20 20:29:09.557 3593-4082/com.example.uvalerx073037.finalproject_correct I/System.out: connection close properly 
+0

Das ist eine gute Frage! Ich brauchte Tage, um es herauszufinden;); –

Antwort

1

Sie müssen sicherstellen, dass SQL-Tabellenzeile und Feld richtig codiert:

  1. der db Sortierung definiert utf8_general_ci sein.
  2. die Sortierung der Tabelle mit hebräisch
  3. In Ihrer Verbindung zur Datenbank Sie Einstellung verwenden müssen utf8_general_ci sein muss, dass der charset wird klar, ich weiß, dass die Verbindungseinstellung wie in PHP sein muss: ('Inhaltstyp: text/html; charset = utf-8');
  4. in Ihrem xhtml-Tag, in android, müssen Sie festlegen, dass diese Seite utf8 verwendet:
  5. nach dem db in der Verbindungsskript auswählen, die Sie benötigen mysql_query setzen (" 'utf8' NAMES SET");

werfen Sie einen Blick auf diese Antwort auch: MySQL db question marks instead of hebrew characters..?

+1

Zusätzlich zu Ihrer Antwort mit JDBC-Verbindung wie in Schritt 3 in Ihrer Erklärung habe ich: con = DriverManager.getConnection ("jdbc: mysql: // localhost: 3306/meineDatenbank? UseUnicode = True & CharacterEncoding = UTF-8", "Benutzer "," passwd "); – Udi