Java ME InputStreamReader Türkçe karakterler

____________________________________________________________________

Java ME’de InputStream sınıfı ve alt sınıfları ile bir veri alırken Türkçe karakter problemi ortaya çıkabiliyor. Bu problemden sakınmak için de verimizi karşı sunucudan UTF-8 kodlamasında gönderip uygulamamızı da UTF-8’e ayarlamalıyız.

InputStreamReader kullanıp parametre olarak bağlantımızı ve kodlamasını vererek karakter problemi olmamasını sağlarız. Örneğin; şöyle bir kod İnternet üzerinden veri alırken işimize yarayacaktır:

StreamConnection sc = (StreamConnection) Connector.open(“http://www.xxx.com/xxx.txt”, Connector.READ_WRITE);
InputStreamReader reader = new InputStreamReader(sc.openInputStream(), “UTF-8”);

Daha sonra bunu InputStream sınıfının read() metodu ile okutarak örneğin bir StringBuffer nesnesine yazabiliriz. String nesnemizle bir işlem yapmak gerektiğinde de şu işe yarar:

new String(“şğİ”.getBytes(“UTF-8”));

Ayrıca Java’da readUTF() ve writeUTF() metotları da var ki bunlar sadece Java’ya özel bir biçimde UTF-8 kodlaması ile okur ve yazarlar, yani tam UTF-8 değillerdir. Örneğin readUTF() metotunu kullanmak için kaynağın da UTF-8 ile çıkış yapan bir Java yazılımı veya sunucusu olması gerekli.