Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Java Server Pages - Sortierung beim Einfügen in MySql?

Fragezeichen kommen daher:

  • Der Client hat einen gültigen Charakter (gut) und
  • Die SET NAMES stimmt mit der Kodierung überein, die der Client hat (gut), aber
  • Der CHARACTER SET der Zielspalte enthält nicht das beabsichtigte Zeichen (schlecht).

Beispiele:

  • latin1 verarbeitet nur westeuropäische Zeichen; Der Versuch, ein osteuropäisches Zeichen oder irgendein asiatisches Zeichen einzufügen, passt nicht.
  • latin2 und cp1250 kann mit Tschechisch umgehen, daher sind Konvertierungen zwischen ihnen meistens in Ordnung, aber nicht zwischen beiden und latin1
  • utf8mb4 ist eine Obermenge von utf8 .Das Einfügen eines utf8-Zeichens in utf8mb4 ist in Ordnung, aber das Gegenteil führt zu einem '?' in manchen Fällen.

Die Zeichen, die in '?' kann nicht aus der Tabelle wiederhergestellt werden.

So beheben Sie zukünftige INSERTs ?

  • Mit utf8mb4 auf die Tabellenspalte(n) funktioniert wahrscheinlich in allen Fällen.
  • Andernfalls wählen Sie einen CHARACTER SET für die Tabellenspalte(n), die vernünftigerweise mit den Kundendaten übereinstimmt.

Der Grund dafür, dass nur einige der Zeichen ? sind (in š?ž?? ) ist weil šž gibt es in latin1, aber die anderen nicht.

Fazit:Ändere den CHARACTER SET in der Tabellendefinition.