Uluslararasılaştırma

4.1  Sorun: toupper() ile karakter dönüşümü gerçekleşmiyor

Bu sorun tr_TR.UTF-8 yerelinde ortaya çıkıyor. Eğer toupper çağısı yapılıyorsa dönüş değerinin mutlaka kontrol edilmesi ve eğer dönüş değeri 128bit'den büyük ise dönüşümün geniş karakterler ile çalışabilen towupper() ile yapılması gerekiyor. towupper() fonksiyonunu çağırmak için karakteri öncelikle çok-baytlı karakter dizisinden geniş karakter'e çevirmek gerekiyor.

Aslen tüm büyük/küçük harf dönüşümlerinin geniş karakterler üzerinden yapılması en ideal çözümken, yazılım geliştiriciler performans kaygıları nedeni ile karakterin niteliğine göre dönüşüm fonksiyonunu seçmeyi uygun görüyorlar. Fakat bu yöntem çoğu zaman (hemen hemen her zaman) Türkçe yerelinde hatalı çalışan uygulamaları doğuruyor.

Information and documents on Pardus web pages can be used freely anywhere with original source credit.
For information and suggestion(s) please write to info_at_pardus.org.tr
TÜBİTAK - UEKAE, PK.74 41470, Gebze / Kocaeli.