Türkçe Karakter Bozuklukları

Öncelikle anlatımımıza joomlayı ilk defa kuracak olan kullanıcıların, veritabanı oluştururken hangi karakter karşılaştırması baz alınarak oluşturmları gerektiği konusuna değinip en son olarak, artık joomlayı bu şekilde kurmadan farklı bir karakter yapısında kurup kullanmış olan joomlacıların ne yapması gerektiği konusuna değineceğim. Joomla sitenizi kurarken veritabanı karakter eşleşmesi seçeneğinden Türkçe karakter yapısı olan latin5_turkish_ci seçeneğinin seçili olması gerekir ki bu veritabanının ileride yedeğini almamız gerektiğinde, yedeğin içindeki türkçe karakterlerin bozuk olmamasını sağlaya bilelim. Joomlanızı bu karakter setli bir veritabanına kurduğunuzda yine bazı türkçe karakterlerde problem olursa aşağıdaki anlatılan yolla bu sorunu giderebilirsiniz includes/joomla.php içerisine satır 87 de şu ifade yer alıyor:

$database->debug( $mosConfig_debug );

bu kısmı şöyle değiştirin:

$database->debug( $mosConfig_debug ); $database->setQuery(“SET NAMES ‘latin5′”); $database->query(); $database->setQuery(“SET CHARACTER SET ‘latin5′”); $database->query(); $database->setQuery(“SET COLLATION_CONNECTION=’latin5_turkish_ci'”); $database->query();

Ama tabii MySQL’de tabloları oluştururken latin5_turkish_ci collation ve charseti seçmeniz gerekiyor. Ayrıca install ederken örnek veriyi yüklüyor. Onda da Türkçe karakter sorunu olmasın istiyorsanız; installation/install2.php dosyasında satır 72 de şu kod parçası var:

$database = new database( $DBhostname, $DBuserName, $DBpassword, $DBname, $DBPrefix );

Bu kısmı şu kod parçası ile değiştirin:

$database = new database( $DBhostname, $DBuserName, $DBpassword, $DBname, $DBPrefix ); $database->setQuery(“SET NAMES ‘latin5′”); $database->query(); $database->setQuery(“SET CHARACTER SET ‘latin5′”); $database->query(); $database->setQuery(“SET COLLATION_CONNECTION=’latin5_turkish_ci'”); $database->query();

Peki, joomlayı kurdunuz ve söz gelimi veritabanı karakter karşılaştırması Latin1…. bunu nasıl düzelteceğiz. Bunu yapmak için gereken malzeme bir kaç sql komutu o kadar. Şöyle ki, veritabanınızdaki tüm ana tabloları altertable… komutuyla yeniden düzenlemeniz mümkün, örnek olarak bir kaç tablomuzu ele alarak bu komutun ne olduğuna ve fonksiyonuna canlı örnekle bakalım.

ALTER TABLE `jos_bannerfinish`  CONVERT TO CHARACTER SET latin5;

ALTER TABLE `jos_categories`  CONVERT TO CHARACTER SET latin5;

ALTER TABLE `jos_components`  CONVERT TO CHARACTER SET latin5;

Örneğimizde görüldüğü gibi üç tane örnek joomla tablosunu baz aldım sizler bu kodu çoğaltarak ve tablo adlarını veritabanınızdaki bulunan diğer joomla tablolarını ekleyerek hepsini birden SQL sekmesinden alttaki penceresine (komut satırı) ekleyip çalıştırdığında artık veritabanınızdaki bu tabloların değerinin Latin5’e dönüştüğünü görebilirsiniz.

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir