19 Eylül 2013 Perşembe

Windows'ta lokal değişikliği yapmadan karakter kodlamasını (character encoding) değiştirme

İngilizce yazdığınız bir metinde bazı Türkçe karakterleri uppercase, downcase yaptınızda meydana gelen durum sinir bozucu olabiliyor. Örnek vermek gerekirse, 'i' karakterini büyük harfe çevirdiğinizde ortaya 'İ' karakteri çıkıyor. Oysa sizin beklentiniz 'I' karakterinin çıkması. Üstelik bu durum meydana geldiğinde işletim sisteminizi İngilizce olarak kullanıyor dahi olabilirisiniz.

Eclipse altında Java kodu yazarken yarattığım boolean ismail; isimli değişkenin getter ve setter metodlarını generate ettiğimde ortaya boolean isİsmail()  gibisinden bir hede çıktı. Eclipse'in kendi properties dosyalarından bu duruma müdahale etmek mümkün. Ancak benzeri durumlar MAVEN generation işlemlerinde, web serverlar üzerinde ve database bağlantıları üzerinde de meydana gelebiliyor.

Windows'un locale değerini değiştirmeden bu sorun şu şekilde halledilebilir :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage altındaki;

  • ACP -> 1254 değerini ACP -> 1252 olarak değiştirin
  • OEMCP -> 857 değerini OEMCP -> 437 olarak değiştirin
Tabii, ne gerek var derseniz, doğrudan Control Panel --> Region and Language --> Administrative --> Change Sytem Locale diğerek benzeri bir işlemi gerçekleştirebilirsiniz. Yalnız bu durumda lokalinizin de değişeceğini unutmayın.

Ayrıca, eğer developer iseniz, siz siz olun asla Windows'ta dahi olsa yaptığınız projenizi saçma sapan encodingler kullanarak yazmayın.cp1254 ne yahu? Mis gibi UTF-8 yapmış adamlar. Hatta, şansınız varsa Windows bile kullanmayın.

Hiç yorum yok:

Yorum Gönder

Related Posts Plugin for WordPress, Blogger...