Tanda tanya muncul dari ini:
- Klien memiliki karakter yang valid (baik), dan
SET NAMES
setuju dengan pengkodean yang dimiliki klien (baik), tetapiCHARACTER SET
kolom target tidak termasuk karakter yang dimaksud (buruk).
Contoh:
latin1
hanya menangani karakter Eropa Barat; mencoba memasukkan karakter Eropa Timur atau karakter Asia lainnya tidak akan cocok.latin2
dancp1250
dapat menangani bahasa Ceko, jadi konversi di antara keduanya sebagian besar OK, tetapi tidak di antara keduanya danlatin1
utf8mb4
adalah 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
utf8mb4
pada kolom tabel mungkin berfungsi di semua kasus. - Jika tidak, pilih beberapa
CHARACTER SET
untuk 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.