Setelah memperhatikan aplikasi yang cenderung membuang email acak karena kesalahan nilai string, saya pergi dan beralih banyak kolom teks untuk menggunakan utf8
charset kolom dan susunan kolom default ( utf8_general_ci
) sehingga akan menerimanya. Ini memperbaiki sebagian besar kesalahan, dan membuat aplikasi berhenti mendapatkan kesalahan sql ketika itu memukul email non-latin juga.
Meskipun demikian, beberapa email masih menyebabkan program mengalami kesalahan nilai string yang salah: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
Kolom isi adalah MEDIUMTEXT
datatybe yang menggunakan utf8
charset kolom dan susun utf8_general_ci
kolom. Tidak ada bendera yang dapat saya toggle di kolom ini.
Ingatlah bahwa saya tidak ingin menyentuh atau bahkan melihat kode sumber aplikasi kecuali benar-benar diperlukan:
- Apa yang menyebabkan kesalahan itu? (ya, saya tahu emailnya penuh dengan sampah acak, tapi saya pikir utf8 akan sangat permisif)
- Bagaimana saya bisa memperbaikinya?
- Apa kemungkinan dampak dari perbaikan seperti itu?
Satu hal yang saya pertimbangkan adalah beralih ke utf8 varchar ([sejumlah besar]) dengan bendera biner dihidupkan, tapi saya agak tidak terbiasa dengan MySQL, dan tidak tahu apakah perbaikan seperti itu masuk akal.