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.
““Error 1366: [MySQL] Incorrect string value” Hatası ve Çözümü” için bir yanıt
sorun devam ediyor, ve bunu import yaparken yaşıyoruz. ODBC ile ne alakası var. Mysql 5.7 kurulu.