2010-11-22 11 views
2

Ich möchte String-Vergleich in Java und MySQL für Utf-8 tun. Wie das geht, bin ich verwirrt. Wie geht das. Irgendwelche Vorschläge bitte. Ist es ein normaler String Vergleich oder etwas besonderes?Wie wird der Vergleich von Zeichenfolgen durchgeführt?

+0

Gib mir ein Beispiel ...? Was für ein Vergleich, den du ausprobierst? –

+0

Java oder JavaScript? –

+0

für Java und MySQL. –

Antwort

1

Java-Zeichenfolgen bestehen aus Unicode UTF-16-Zeichen.

Es gibt Charset-Klassen für die Konvertierung von und zu anderen Zeichensätzen. Im Fall von UTF-8, einer Untergruppe von UTF-16, sollte die Konvertierung in UTF-16 nicht problematisch sein - wenn Sie einen String haben, mit dem die Konvertierung durchgeführt wurde, gelten alle normalen String-Operationen.

Siehe http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp

Diese StackOverflow Question Adressen der Verwendung von UTF-8 in Java/MYSQL.

+0

@dj danke. Ich konfigurierte Unicode uf-8 in mysql, Java meine nächste Aufgabe ist String-Vergleich, wie zu erreichen, dass ich nach dem Oracle-Link, den Sie gesendet haben, kümmern. Kannst du mich führen? Bitte und danke. –

+0

@dj danke. Was ist der Unterschied zwischen utf-8 und utf-16? warum java besteht aus utf-16 und warum nicht utf-8. mysql, jdbc alle sind UTF-8, die ich konfiguriert habe. Wenn ich falsch liege, korrigiere mich bitte. danke –

+0

Ihre Zeichenfolgen seamlesslesy enthalten eine (UTF-16) Darstellung der UTF-8 Werte. Lies einfach aus der Datenbank und schaue in den String. Lesen Sie alle Funktionen von Java Strings nach. Geben Sie ein bestimmtes Vergleichsproblem an, wenn dies nicht sinnvoll ist. – djna

1

Der offensichtliche Ansatz ist es, nur die Saiten zu vergleichen mit Java String.equals(String) usw. Java Strings sind Unicode-Strings * und Java und MySQL beide wissen, wie Unicode-Daten zu handhaben.

Das einzige knifflige Bit ist sicherzustellen, dass Sie MySQL für die Verwendung von Unicode (normalerweise UTF-8) konfiguriert haben. In älteren Versionen von MySQL bedeutete dies typischerweise, die Datenbank entsprechend zu definieren UND bestimmte Parameter in der JDBC-URL zu verwenden. Informieren Sie sich in beiden Fällen über die MySQL- und MySQL-Connector-Dokumentation für die von Ihnen verwendeten Versionen.

* Streng genommen Java Strings werden in einer Form von UTF-16 codiert, mit Unicode-Codepunkten über 65535 als ein Paar von char Werten dargestellt.

+0

@Stephan thanks.yes Ich konfigurierte mysql für Unicode utf-8 und fügte das? UseUnicode = true & characterEncoding = utf8 in jdbc url hinzu. Jetzt kann ich andere Sprachinhalte in mysql speichern und in der Lage sein, sie auch im richtigen Format wiederzufinden. Jetzt ist meine nächste Ansicht auf String-Vergleich für Java und MySQL im UTF-8-Format. Wie können Sie das erreichen, bitte leiten Sie mich. –

+0

@ Leo-win - Wenn die Datenbank und der JDBC-Treiber für die Verwendung von UTF-8 konfiguriert sind, verwenden Sie einfach 'String.equals()' oder SQL '=' oder 'LIKE'. –

Verwandte Themen