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

Ahmet

Sıradan bloglardan birisi :) Google+

Bunlar da hoşunuza gidebilir...

8 Cevaplar

  1. Mehmet Saygılı dedi ki:

    Merhaba, malesef bu çözüm docker üzerinde koşan debian yada ubuntu üzerindeki bir postgresql veri tabanı için geçerli değil. 🙁 Yazınızı ilk okurken çok sevinmiştim problemi çözen birisi var diye ama tekrar hüsran 🙁

    Docker üzerinde hiç deneme fırsatı buldunuz mu? debian ya da alpine linux üzerinde.

  2. Berkay AKÇAY dedi ki:

    Merhaba,

    locale listesine ekleme yaptıktan sonra postgresql’i yeniden başlatmak gerekebiliyor.

    **
    service –status-all
    service postgresql status
    service postgresql restart
    **

  3. hüseyin berber dedi ki:

    Merhaba, psql v12 kullanıyorum. Lc_locate ve c_type ayarını yaptım db’de fakat arama yaparken i ve ı harflerinde büyük küçük problemi var hala örnek verecek olursam ILIKE kullanıyorum İ diye aratınca İSTANBUl’u buluyor kümük i yapınca maalesef bulamıyorum

  4. Ahmet dedi ki:

    Hüseyin Merhaba,
    Mevcut veritabanını silip, aşağıdaki syntax ile tekrar oluşturur musun?
    LC_CTYPE parametresi ile de dener misin?

    CREATE DATABASE test_db ENCODING='UTF-8' LC_COLLATE = 'tr_TR.UTF-8' LC_CTYPE='tr_TR.UTF-8' TEMPLATE template0;

    • hüseyin berber dedi ki:

      Maalesef işe yaramadı en azından windows için

      • Kürşat Sönmez dedi ki:

        Merhaba, Windows için bu yöntem işe yaramıyor maalesef. Direkt kolonu TR olarak ayarlamanız gerekiyor o şekilde problem çözülüyor.

        Kolonun Collation alanını “tr-TR-x-icu” olarak ayarlamalısınız. O zaman problem çözülüyor.
        Ek olarak, string olarak bi lower vs. yapacaksanız; LOWER(“mystring” COLLATE “tr-TR-x-icu”) şeklinde kullanmalısınız. Bu şekilde windows üzerinde de düzgün çalışıyor.

  5. mehmet dedi ki:

    merhaba windows için
    CREATE DATABASE tr WITH TEMPLATE = template0 ENCODING = ‘UTF8’ LC_COLLATE = ‘C’ LC_CTYPE = ‘Turkish_Turkey.1254’

  6. Emre Sever dedi ki:

    Arkadaşlar ef core code first ile PostgreSql kullanımında türkçe karakter problemi yaşıyor iseniz vermiş olduğum kod parçasını DbContext sınıfındaki OnModelCreating metodunu override ederek içine yazınız. Migration oluşturma aşamasında gerekli konfigürasyonları yaparak türkçe karakter problemini çözüyoruz.

    modelBuilder.UseDatabaseTemplate(“template0”);
    modelBuilder.UseCollation(“C”);
    modelBuilder.Entity().Property(p => p.Name).UseCollation(“tr-TR-x-icu”);
    modelBuilder.UseTablespace(“pg_default”);

    Bütün entityleriniz için string kolonlarına 3. satırda yazmış olduğum gibi colletion eklemelisiniz.
    Bütün entityler için bu satırı yazacakmıyız dersenizde ef core da tek bir metot ile de çözebilirsiniz.

Mehmet Saygılı için bir cevap yazın Cevabı iptal et

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