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.