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 SETomfatter ikke det tilsigtede tegn (dårligt).
Eksempler:
latin1hå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.latin2ogcp1250kan håndtere tjekkisk, så konverteringer mellem dem er for det meste OK, men ikke mellem nogen af dem oglatin1utf8mb4er et supersæt afutf8.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
utf8mb4på tabellen fungerer kolonne(r) sandsynligvis i alle tilfælde. - Ellers skal du vælge et
TEGNSÆTfor 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.