Türkçe karakter problemini veritabanı ve/veya ORM araçları kullanırken yaşamayan yoktur sanırım. Mutlaka karakter kodlaması veya bizlerin eklemeyi unuttuğu bazı parametre ve konfigürasyonlardan dolayı bu sorunla karşılaşıyoruz.
Çözümü genelde oldukça basit olsa da bazen gözümüzden kaçırdığımız noktalar olabiliyor. Bu kapsamda böyle bir sorunla karşılaştığınızda uygulayabileceğiniz bazı yöntemleri yazının devamında paylaşıyor olacağım.
- JDBC
JDBC ayarlarında aşağıdaki parametreleri girmelisiniz.
useUnicode=true characterEncoding=UTF-8
- JPA
persistence.xml içerisine property olarak aşağıdaki satırları eklemelisiniz.
<property name="hibernate.connection.useUnicode" value="true" /> <property name="hibernate.connection.characterEncoding" value="UTF-8" />
- Hibernate config
Hibernate.cfg.xml içerisine aşağıdaki satırları eklemelisiniz.
<property name="hibernate.connection.characterEncoding">utf8</property>
- Seam
ds.xml içerisine aşağıdaki satırları girmelisiniz.
<connection-property name="useUnicode">true</connection-property> <connection-property name="characterEncoding">UTF-8</connection-property>
Tüm bunları yaptınız ve hala Türkçe karakter sorunu ile karşılaşıyorsunuz. Burada çoğu kişinin unuttuğu nokta Veritabanı üzerinde şema oluştururken şemayı “default encoding” olarak açmasıdır. Default olarak Latin-xx encoding oluşturulur. Şemayı oluştururken UTF-8‘i destekler şekilde seçtiğimizde çok büyük bir ihtimal sorun çözülecektir.
İşinize yaraması dileğiyle, okuduğunuz için teşekkürler 😉