“Error 1366: [MySQL] Incorrect string value” Hatası ve Çözümü

UTF-8 karakter kodlamasına sahip MySQL veritabanına, ASP, PHP vb. gibi programlama dillerinden biriyle oluşturduğunuz projenizden Türkçe, Çince, Japonca ya da İngilizce karakterler dışında özel karakterler içeren bir dilde kayıt eklemeye çalıştınız. Hiç beklemediğiniz bir anda aşağıdaki hatalardan birini aldınız:

  • [MySQL][ODBC 3.51 Driver][mysqld-5.1.42-community]Incorrect string value: ‘\xDDntera…’ for column ‘Tabloadı’ at row 1

  • 1366 incorrect stringvalue for field_x at row 1 \xe2\x80\x97utl

Bunun iki nedeni var:

  • UTF-8 karakter kodlaması kodlamalı bir veritabanına, ISO karakter kodlaması (ISO-8859-9, ISO-8859-1 ya da Windows-1254, Windows-1251 vb.] ile UTF-8′i karıştırarak veri gönderiyorsunuz. Yani, veritabanınız UTF-8 iken, kodlamasını yaptığınız sayfanın dili ISO karakter kodlamasına sahip. Haliyle, ISO karakter kodlaması Unicode karakteri dönüştüremeden veritabanına gönderiyor ve bu da hataya neden oluyor. Sorunun çözümü için, veriyi gönderdiğiniz sayfanın karakter kodlamasını UTF-8 olarak değiştirmelisiniz. Sorun devam ediyorsa, ikinci nedene ve çözüme geçin.
  • MySQL ODBC sürücüsünün eski bir sürümünü kullanıyorsunuz. MySQL ODBC Driver 5.1 ile artık bu sorun yaşanmıyor. Hemen güncel MySQL ODBC Driver sürümünü indirerek, bu sorundan tamamen kurtulabilirsiniz.

Bir önceki yazımız olan HTML Yönlendirme Kodu başlıklı makalemizi de okumanızı öneririz.

20 Ekim 10
0 yorum
Mustafa Çağrı Pinterest

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir