sql >> Database teknologi >  >> RDS >> Mysql

Java Server Pages - sortering ved indsættelse i MySql?

Spørgsmålstegn kommer fra dette:

  • Klienten har et gyldigt tegn (godt), og
  • SET NAMES stemmer overens med den kodning, som klienten har (god), men
  • Målkolonnens CHARACTER SET omfatter ikke det tilsigtede tegn (dårligt).

Eksempler:

  • latin1 håndterer kun vesteuropæiske tegn; At forsøge at sætte en østeuropæisk karakter eller en hvilken som helst asiatisk karakter ind vil ikke passe.
  • latin2 og cp1250 kan håndtere tjekkisk, så konverteringer mellem dem er for det meste OK, men ikke mellem nogen af ​​dem og latin1
  • utf8mb4 er et supersæt af utf8 .At sætte et utf8-tegn i utf8mb4 er ok, men det omvendte vil resultere i et '?' i nogle tilfælde.

Karaktererne, der blev konverteret til '?' kan ikke gendannes fra bordet.

Sådan rettes fremtidige INSERTs ?

  • Brug af utf8mb4 på tabellen fungerer kolonne(r) sandsynligvis i alle tilfælde.
  • Ellers skal du vælge et TEGNSÆT for tabelkolonnen(r), der med rimelighed matcher klientdataene.

Årsagen til, at kun nogle af tegnene er ? (i š?ž?? ) er fordi šž findes på latin1, men de andre gør det ikke.

Nederste linje:Skift CHARACTER SET i tabeldefinitionen.



  1. Sådan fjerner du Not Null Constraint i MySQL

  2. Gendan MySQL root-adgangskode

  3. Handlingen kan ikke fuldføres, fordi DbContext er blevet disponeret i Mqsql og Entity Framework

  4. Kan ikke få antallet af rækker og hente ved brug af MySQLi forberedt sætning