2012-06-07 15 views
11

Ich habe Probleme beim Senden oder Anzeigen von Text mit Sonderzeichen aus meinem Webservice in meine Datenbank. Auf meiner Sonnenfinsternis habe ich die Zeichencodierung auf UTF-8 eingestellt, aber es lässt mich immer noch nicht die Zeichen anzeigen. Zum Beispiel kann ein einfacher Druck wie der Code unterSonderzeichen mit System.out.println anzeigen

String test ="привет"; 
System.out.println(test); 

ODER

String test ="привет"; 
String query = "insert into communication (`test`) VALUES ('"+ test +"'); 
PreparedStatement preparedStmt1 = con.prepareStatement(query); 
preparedStmt1.executeUpdate(); 

Das Ergebnis auf der Konsole und wenn ich diese auf meine Datenbank zu senden ist ??????. Wie bekomme ich das korrekt auf der Konsole angezeigt und hoffentlich in der Datenbank

+0

Ist das die Eclipse-Konsole oder sh/cmd? Für welchen Zeichensatz ist deine Konsole eingestellt? – atk

+1

eclipse, wenn unter Konsolenzeichensatz die Einstellungen in Windows> Einstellungen> WorkSpace unter UTF-8 definiert sind. Gibt es eine andere Möglichkeit, die Konsole separat einzurichten? – Amanni

Antwort

1

Ja, es ist die XXI

PrintStream out = new PrintStream(System.out, true, "UTF-8"); 
    out.println(test); 

Für in DB, die Verwendung zu speichern. Jahrhundert und wir sind immer noch mit Dingen wie Zeichenkodierung zu kämpfen ...

Meine erste Vermutung ist, dass entweder:

  1. Quelldatei Codierung könnte falsch sein (verwenden Sie Tools wie Maven bauen Es könnte benötigt werden, um auch dort die Quellencodierung einzustellen),
  2. Ihre Konsolencodierung könnte falsch sein (sind Sie unter Windows? Die Standard-Befehlszeilenkonsole ist standardmäßig nicht UTF, ihre lokale abhängig, aber mit einem kleinen Spiel in der Registrierung können Sie seine Codierung festlegen)
  3. Ihre DB-Codierung möglicherweise falsch (was ist die Tabelle Codierung, können Sie das überprüfen ?)
+0

Ich habe die Tabelle Codierung auf utf8 immer noch das gleiche Ergebnis festgelegt. Soweit das Encoding geht kann ich Sonderzeichen bei der Programmierung in Android anzeigen. – Amanni

9

Sehen Sie, ob dies funktioniert. folgend auf den String in UTF-8-Codierung explizit

String newString = new String(test.getBytes(), "UTF8"); 
+0

Nein, ich bekomme die gleichen Zeichen – Amanni

+0

Sie müssen die Zeichenfolge zu "iso-8859-1" codieren ex: new String (test.getBytes(), "iso-8859-1"); – oczdref

0

können Sie Ihre Zeichenfolge ISO-8859 erste und kodieren sie dann auf UTF-8

11

Wenn Sie Eclipse verwenden, dann entschlüsseln müssen sein, um

  1. Rechtsklick auf du projizierst.
  2. auf Eigenschaften
  3. Wählen Sie UTF-8 in "Text Datei-Encoding"

enter image description here

+0

WOW, es funktioniert für mich. – Sun