Solaris'te Java Uygulamasında Türkçe Karakter Sorunu

Solaris üzerinde çalışan Weblogic 10.3.5 uygulama sunucumuzda log4j üzerinden yazdırdığımız log dosyalarında geçen Türkçe karakterlerin bozuk gözüktüğünü farkettik ve bunun sebebini araştırmak üzere önce Java kodlarını incelemeye başladık. Gördük ki yerel geliştirme ortamımızda Türkçe karakterler düzgün şekilde yazdırılıyor. Bunun üzerine aklımıza önce veritabanı bağlantısında kullandığımız sürücülerin gelen verinin karakter setini bozduğunu düşündük ama dikkat ettiğimizde statik loglarda da Türkçe karakter sorunu olduğunu farkettik.

Bunun üzerine  sistemin dil ayarlarına bakmayı düşündük ve

$ env

LANG=en_US

şeklinde bir dil tanımı olduğunu gördük. Solaris kurulumumuzdaki LANG sistem değişkenine bakan Java sadece ANSI en_US olarak bekliyordu gelen karakterleri. Bunu şu şekilde değiştirdiğimizde ve Java ile çalışan Weblogic'i de kapatıp yeniden açtığımızda artık Türkçe karakterlerimiz düzgün şekilde gösteriliyordu:

LANG=en_US.UTF-8

Ha şimdi sistem değişkeni değişince başka bir uygulama bundan etkilenebilir derseniz sadece o Java uygulaması için bu ayarı yapabilirsiniz. Tek yapmanız gereken uygulamayı çalıştıran betiğin içinde java komutunun başına şunun eklenmesini sağlamak:

-Dfile.encoding=UTF-8

Weblogic 10.3.5 için $DOMAIN_HOME/bin/setDomain.sh dosyasında şu şekilde JAVA_PROPERTIES değişkeninin en başına bunu eklemek yetti:

JAVA_PROPERTIES="-Dfile.encoding=UTF-8 -D....."

Her betik yeni bir komut ortamı açtığı için burada tanımladığımız değişkenler betiğin bitiminde kaybolacaktır.

Yorumlar

Popüler Yayınlar