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
ogcp1250
kan håndtere tjekkisk, så konverteringer mellem dem er for det meste OK, men ikke mellem nogen af dem oglatin1
utf8mb4
er 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
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.