Bir uygulamanın yanlış dize değeri hataları nedeniyle rastgele e-postaları atma eğiliminde olduğunu fark ettikten sonra, yine de gittim ve birçok metin sütununu, utf8
sütun karakter kümesini ve varsayılan sütun collate ( utf8_general_ci
) kullanmak için onları değiştirecek şekilde değiştirdim. Bu, hataların çoğunu düzeltti ve latin olmayan e-postalara çarptığında uygulamanın sql hataları almayı durdurmasını sağladı.
Buna rağmen, bazı e-postalar programın hatalı dize değeri hatalarına çarpmasına neden oluyor: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
İçerik sütunu, sütun karakter kümesini ve sütun harmanlamasını MEDIUMTEXT
kullanan bir veri türüdür . Bu sütunda değiştirebileceğim bayrak yok.utf8
utf8_general_ci
Kesinlikle gerekli olmadıkça dokunmak veya hatta uygulama kaynak koduna bakmak istemiyorum:
- Bu hataya ne sebep oluyor? (evet, e-postaların rastgele çöplerle dolu olduğunu biliyorum, ancak utf8'in oldukça hoş olacağını düşündüm)
- Nasıl düzeltebilirim?
- Böyle bir düzeltmenin olası etkileri nelerdir?
Düşündüğüm bir şey, ikili bayrak açıkken bir utf8 varchar'a ([bazı büyük sayı]) geçiş yapmaktı, ancak MySQL'e aşina değilim ve böyle bir düzeltmenin mantıklı olup olmadığı hakkında hiçbir fikrim yok.