Frage

Ich habe eine Textzeichenfolge (Java-String), die generationstabelletagcode enthalten soll.

In der Realty enthält es zusätzlich zum Rest, "C2 ', ein Steuerzeichen.Ich habe den Hex-Dump integriert, siehe 'gerald.o'leary' für einen Hex-Dump.

Eingabetaste hier eingeben

Wenn ich es in der DB speichern und wieder las, indem Sie SQL in einem Client ausführen und in einem SEX-Editor einfügen, in einem SEX-Editor, den ich mit 3F ersetzt habe.

Bildbeschreibung eingeben Hier eingeben

Ich hätte mit ihm lebbar sein können, aber für die Tatsache, dass diese beiden Saiten in Java mit String.equals () verglichen werden, wird falsch zurückgegeben.

Kann jemand bitte erklären, was hier los ist ?!

War es hilfreich?

Lösung

Haben Sie geprüft, ob Ihre SQL-DB UTF-8 / Unicode-Zeichen (d. H. Es ist nicht ISO-8859-1, ASCII oder ähnlich) gespeichert?

    .
  • Ausgabe der Zeichenfolge zuerst an den Standardausgang, um zu sehen, ob er wirklich den richtigen Zeichen enthält (? ist in der Leistung in Ordnung, aber ?? oder 0xc2 0x92= Â Â »Ist nicht).
  • Überprüfen Sie dann Ihren Datenbankzeichensatz.Siehe das Handbuch.

Andere Tipps

Ich weiß nicht, wie Sie den Hex-Dump bekommen haben, aber Java-Saiten sind Unicode-Saiten, also gibt es keine 1: 1-Korrespondenz zwischen Zeichen und Bytes.Ich vermute, Ihre Zeichenfolge enthält Unicode-Zeichen, die nicht durch einzelne Bytes dargestellt werden können, und Ihre Charakterhandhabung (der annimmt, dass dies der Fall ist) ist fehlerhaft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top