Mysql 3.23 veya 4.0 dan 4.1 ve üzeri bir versiyona geçiş yapıldığında bazı enteresan karakter sorunları meydana gelmekte. Türkçe’ye özgü ş,ı,ğ,ü,ç,ö,Ö,Ç,Ş,Ğ,Ü,İ gibi karakterler yerine soru işareti (?) döndürmekte.
Bu sorunun çözümü için yapılması gereken şey MySQL ile olan bağlantınızın doğru dil kodlaması üzerinden yapılmasını sağlamak.
Bunu iki yöntemle yapabiliriz.
1. yöntemde my.ini veya my.cnf dosyalarının içinde bulunan [client] ve [mysqld] bölümlerine
default-character-set=latin5
satırını eklerseniz tüm bağlantılar default olarak Türkçe dilinde yapılacak.
2. yöntemde php veya kullandığınız programlama dili hangisi ise MySQL bağlantısını kurduktan sonra yapacağınız ilk sorguda karakter karşılaştırma setlerinin tanımalamasını yapmak olmalıdır. Bu sorguları her bağlantı komutundan sonra vermelisiniz. İdeal olan sistemlerde bağlantı genelde tek bir dosyanın içindeki bir bölümde tanımlanır. Eğer kodlarınızı ideal sistemlere uyumlu şekilde yazıyorsanız işiniz kolay. Çalıştıracağınız sorgu
@mysql_query ('SET NAMES LATIN5'); @mysql_query ('SET COLLATION_CONNECTION=LATIN5_TURKISH_CI');

Eylül 14th, 2009 02:33
bunların hepsini denedim düzelen bişey yok en iyisi eski tas eski hamam devam etmek
Haziran 30th, 2010 14:49
latin5 yerine utf8 kullanmanızı öneririm.
Ağustos 6th, 2010 15:50
[...] [...]
Kasım 2nd, 2010 16:43
Merhaba
Ben tüm php dosyalarımın header tagında utf8 dilini seçtim
mysql tablo ve tablo verilerinin dilini utf8_general_ci seçtim
configirasyon dosyalarımda utf8_general_ci şeklinde.
Şimdi sorunum şu. php sayfalarımdan Mysql veri tabanına gönderdiğim Türkçe karakterler (örneğin ŞEKER) veritabında (ÅžEKER) bu şekilde görünüyor. php sayfalarında veriyi çağırıp yazdırdığımda ise ŞEKER şeklinde yazıyor ama ORDER BY ile sıralamada ŞEKER kelimesini A… ile B… harfi arasına yer alıyor.
Joomla yı incelediğimde ise onun da MySQL veritabanında ytf8_general_ci dilini kullandığını gördüm. Ama veritabanında Türkçe karakterler Türkçe şekilleri ile kaydedilmiş. Yani ŞEKER olarak görünüyor. Bu yüzden PHP ORDER BY komutu ile listeleme işlemini de doğru yapıyor.
Benim sorunum sanırım veritabanına Türkçe karakterleri Türkçe olarak kaydettirememek, bunu nasıl yapabilirim?