PostgreSQL Türkçe Karakter Hatasının Çözümleri

0
Bu sayfa 43 kez görüntülendi.
Postgresql Türkçe Karakter Hatası

Merhaba,
Yaklaşık olarak 7-8 yıldan bu yana MySQL veri tabanı kullanıyorum. MySQL’den PostgreSQL’e geçmeyi hep istiyordum fakat erteleye erteleye bu kadar zaman geçmiş demek ki!

PostgreSQL hakkında uzunca araştırmalardan sonra yeni bir projede kullanmaya karar verdim. Database oluşturup, tabloları create etmeye başladım. Her şey çok güzel gidiyordu 🙂

Ta ki “LIKE” operatörü ile türkçe küçük i veya büyük İ araması yaptığımda sonuçların gelmediğini farkettim. Sonra PostgreSQL’de “ILIKE” operatörü olduğunu farkettim. Fakat bu operatörde problemi çözmemişti. Stackoverflow üzerinde çözümü aramaya başladım. Birçok kişinin bu durumdan muzdarip olduğunu fakat bir sonuca ulaşamadıklarını farkettim. Yada ben bulamadım 🙁 PostgreSQL’de acemi olduğum için sağlıklı bir sonuca da ulaşamadım açıkçası.

Daha sonra twitter üzerinden DM ile M.Atıf Ceylan‘a konunun detaylarını anlattım. Sağolsun, zaman ayırıp bunun neden kaynaklandığını hakkında cevap yazdı.

Bu durumun collate ile alakalı olduğunu, veritabanı oluştururken “tr_TR.utf-8” tanımlamasını yaptığımda sorunun ortadan kalkacağını belirtti.

Ben de veritabanını dışarı aktarıp mevcut veritabanını sildim. Daha sonraki adımları aşağıda belirtiyorum.

Database oluşturma esnasında aşağıdaki gibi LC_COLLATE için tr_TR.UTF-8 değerini belirtiyoruz.

Yine aynı şekilde tablo oluşturma esnasında aşağıdaki gibi COLLATE için tr_TR.UTF-8 değerini belirtiyoruz.

PostgreSQL’in kullandığınız versiyona göre seçebileceğiniz collation ları aşağıdaki sorgu ile bulabilirsiniz.

Yukarıdaki sorguda tr_TR.UTF-8 tanımlı değilse aşağıdaki komutları çalışırın.

Daha sonra aşağıdaki SQL’i çalıştırıyoruz. Çalıştırdıktan sonra listelendiğini göreceksiniz.

Artık türkçe karakter problemi yaşamadan PostgreSQL nimetlerinden faydalanmaya başlayabiliriz 🙂

Son olarak desteği için M.Atıf Ceylan‘a teşekkür ederim.

Bu sayfa 43 kez görüntülendi.

CEVAP VER

Please enter your comment!
Please enter your name here

Yorum onaylama sistemi etkin; yorumunuzun yayınlanması biraz zaman alabilir.