Tanda tanya muncul dari ini:
- Klien memiliki karakter yang valid (baik), dan
SET NAMESsetuju dengan pengkodean yang dimiliki klien (baik), tetapiCHARACTER SETkolom target tidak termasuk karakter yang dimaksud (buruk).
Contoh:
latin1hanya menangani karakter Eropa Barat; mencoba memasukkan karakter Eropa Timur atau karakter Asia lainnya tidak akan cocok.latin2dancp1250dapat menangani bahasa Ceko, jadi konversi di antara keduanya sebagian besar OK, tetapi tidak di antara keduanya danlatin1utf8mb4adalah superset dariutf8.Menempatkan karakter utf8 ke dalam utf8mb4 boleh saja, tetapi kebalikannya akan menghasilkan '?' dalam beberapa kasus.
Karakter yang diubah menjadi '?' tidak dapat dipulihkan dari tabel.
Cara memperbaiki INSERTs di masa mendatang ?
- Menggunakan
utf8mb4pada kolom tabel mungkin berfungsi di semua kasus. - Jika tidak, pilih beberapa
CHARACTER SETuntuk kolom tabel yang cukup cocok dengan data klien.
Alasan hanya beberapa karakter yang menjadi ? (dalam š?ž?? ) karena šž ada di latin1 tapi yang lain tidak.
Intinya:Ubah CHARACTER SET dalam definisi tabel.