İçeriğe geç
Candemsoft

Ücretsiz Araçlar / Tipografi ve Karakter Dönüşümü

Büyük Küçük Harf Dönüştürücü

Metinlerinizi büyük harf, küçük harf, baş harfleri büyüt veya cümle düzeni modlarına saniyeler içinde dönüştürün. Türkçe İ-ı ve I-i karmaşasını ortadan kaldıran akıllı dönüşüm motoru.

Dönüşüme hazır.
0 Karakter·0 Kelime

Not: Cümle düzeni tüm metni küçülterek cümle başlarını büyütür; özel isimlerinizi kontrol ediniz.

Hızlı Test Sözcükleri:
Teknik Kılavuz ve İpuçları

Metin Dönüşümünde Türkçe Karakterlerin Anatomisi ve Yaygın Hatalar

Unicode Standartlarında Dört Farklı 'I' ve 'İ' Karakteri

Modern bilgisayar sistemlerinin büyük bölümü, Latin alfabesinin İngilizce varyantı referans alınarak tasarlanmıştır. Standart ASCII tablosunda büyük 'I' (Unicode U+0049) ile küçük 'i' (Unicode U+0069) birbirinin doğrudan büyük-küçük harf eşleniği olarak kabul edilir. Oysa Türk alfabesinde durum kökten farklıdır: Türkçede noktalı ve noktasız olmak üzere iki bağımsız sesli harf bulunur ve her ikisinin de hem büyük hem küçük biçimi mevcuttur. Noktalı küçük 'i' harfinin büyüğü noktalı 'İ' (U+0130), noktasız büyük 'I' harfinin küçüğü ise noktasız 'ı' (U+0131) karakteridir.

Bu ayrım gözetilmediğinde yazılım dünyasında meşhur 'Türkçe İ Sorunu' patlak verir. Örneğin 'ilişki' sözcüğünü İngilizce yerel ayarlarıyla çalışan bir büyük harf fonksiyonuna gönderdiğinizde, ilk harf noktasız 'I' harfine dönüşür ve ekranda 'ILISKI' ya da 'ILIŞKI' şeklinde hatalı bir yazım belirir. Benzer biçimde 'IŞIK' sözcüğü standart toLowerCase işleminden geçtiğinde 'iŞIK' gibi telafisi güç yazım faciaları meydana gelir. Üstelik naif kütüphaneler 'İ' harfini küçültürken bazen harfin üzerine fazladan bir birleştirici nokta (combining dot above U+0307) ekleyerek metin karşılaştırmalarını tamamen bozar.

toUpperCase('en') vs toLocaleUpperCase('tr'): JavaScript ve Python Tuzakları

Programlama dillerinde varsayılan metin fonksiyonları ekseriyetle evrensel değil, Amerikan İngilizcesi merkezlidir. JavaScript ortamında doğrudan string.toUpperCase() çağırmak, tarayıcının veya Node.js çalışma ortamının varsayılan yerel ayarlarına güvenir ve çoğunlukla kök (root invariant) kurallarını işletir. Bu durumda 'istanbul' girdisi 'ISTANBUL' çıktısına dönüşerek anlam ve telaffuz kaybına yol açar. Geliştiricilerin bu hatadan kaçınmak için mutlaka string.toLocaleUpperCase('tr-TR') ve string.toLocaleLowerCase('tr-TR') fonksiyonlarını bilinçli bir biçimde kullanması şarttır.

Python dünyasında da durum benzer riskler barındırır. Python 3'te yerleşik str.upper() ve str.lower() metotları Unicode standardının 'Default Casing' kurallarını uygular ve yerel dil parametresi kabul etmez. Dolayısıyla Python'da 'istanbul'.upper() çalıştırıldığında sonuç yine 'ISTANBUL' olacaktır. Bu sorunun önüne geçebilmek adına Python projelerinde ya sistem locale ayarları dikkatle yapılandırılmalı ya PyICU kütüphanesi devreye alınmalı ya da özel bir çeviri haritası (str.maketrans üzerinden çalışan yerelleştirilmiş fonksiyonlar) tanımlanmalıdır.

Veritabanı Karşılaştırma Kuralları (Collation) ve Arama Sorunları

Büyük-küçük harf dönüşüm hataları yalnızca kullanıcı arayüzlerinde görsel bir kusur olarak kalmaz; arka planda çalışan veritabanı mimarilerinde ciddi sorgu tutarsızlıklarına yol açar. MySQL ve MariaDB sistemlerinde varsayılan olarak kullanılan utf8mb4_general_ci veya utf8mb4_unicode_ci harmanlamaları, İngilizce mantığıyla ASCII i ile I harflerini birbirine denk kabul eder. Ancak Türkçe ı ile İ karakterleri bu kümenin dışında kalarak eşleşmez; doğru eşleştirme için utf8mb4_turkish_ci harmanlaması gereklidir. PostgreSQL sistemlerinde ise harmanlama genellikle işletim sistemi yereli (LC_COLLATE = tr_TR.utf8) üzerinden yapılandırılırken, SQLite yerleşik NOCASE operatörü yalnızca temel ASCII harflerini tanır.

Bu durum, kullanıcının istanbul araması yaptığında veritabanında İSTANBUL şeklinde kayıtlı satırların bulunamamasına neden olur. Benzer şekilde kullanıcı adı ve e-posta doğrulama süreçlerinde ALİ ile ali kayıtları collation uyuşmazlığı sebebiyle iki farklı hesapmış gibi algılanabilir veya tam tersi benzersizlik kısıtlarını ihlal edebilir. Geliştiricilerin bu tip sorgu anomalilerini önlemek için hem veritabanı seviyesinde doğru harmanlama kurallarını seçmesi hem de kullanıcı girdilerini tutarlı bir normalizasyon süzgecinden geçirmesi gerekir.

Baş Harfleri Büyüt (Title Case) Modu ve Türkçe Kurallar

Metinleri Baş Harfleri Büyüt (Title Case) biçimine dönüştürmek, dijital kartlarda, menü başlıklarında ve blog yazılarında görsel bir hiyerarşi oluşturmanın en pratik yoludur. Ancak standart JavaScript toUpperCase() veya İngilizce kütüphaneler kullanıldığında, istanbul sözcüğünün baş harfi hatalı olarak noktasız I harfine (Istanbul) dönüşür. Benzer şekilde ışık sözcüğü ise noktalı İ harfine (İşık) dönüşerek kural ihlali yaratır.

Aracımız, Baş Harfleri Büyüt modunda metindeki her sözcüğün ilk karakterini Türkçe yerel kurallarına (toLocaleUpperCase tr) uygun şekilde bağımsız olarak büyütür ve kalan harfleri küçük harfe indirir. Bu işlem sayesinde İstanbul Ve Işık gibi her kelimesi doğru Türkçe karakterle başlayan temiz başlıklar elde edilir. Yazılı metinlerinizde geleneksel TDK yayın kılavuzları doğrultusunda ve, ile, de gibi bağlaçları küçük bırakmak isterseniz, bu otomatik çıktıyı editoryal tercihinize göre zahmetsizce son hâline getirebilirsiniz.

İlgili Ürün ve Rehberlerimiz

Türkçe dil desteği, yapay zekâ entegrasyonu ve dijital metin işleme vizyonumuzla geliştirdiğimiz ürünler ve teknik yazılarımız.

Merak Edilenler

Sıkça Sorulan Sorular

Neden standart büyük harfe dönüştürücüler Türkçede 'İ' ve 'ı' harflerini bozar?
Standart yazılımlar İngilizce ASCII kurallarına göre çalışır ve 'i' harfini noktasız 'I' olarak büyütür. Türkçede ise noktalı 'i'nin büyüğü 'İ', noktasız 'ı'nın büyüğü 'I' karakteridir. Yerelleştirilmemiş algoritmalar bu iki harf çiftini karıştırdığı için kelimeler hatalı yazılır.
CSS 'text-transform: uppercase' kullanımı neden her zaman güvenli değildir?
CSS dönüşümü tarayıcının dil algısına ve HTML sayfasının 'lang' etiketine bağlıdır. Etiket eksikse veya bileşen çok dilli bir yapıda yanlış render edilirse Türkçe karakterler bozulur. Ayrıca ekran okuyucular büyük harfli kelimeleri bazen harf harf kodlayarak erişilebilirliği düşürür.
JavaScript'te Türkçe metinleri doğru büyütüp küçültmenin yöntemi nedir?
JavaScript'te doğrudan .toUpperCase() yerine .toLocaleUpperCase('tr-TR') ve .toLowerCase() yerine .toLocaleLowerCase('tr-TR') kullanılmalıdır. Böylece 'istanbul' doğru şekilde 'İSTANBUL', 'IŞIK' ise 'ışık' olarak dönüştürülür.
Büyük-küçük harf dönüşümü veritabanı aramalarını nasıl etkiler?
Veritabanlarında utf8mb4_general_ci gibi genel collation kullanıldığında 'i' ile 'I' denk kabul edilirken 'İ' ile 'ı' eşleşmeyebilir. Bu durum aramalarda kayıtların bulunamamasına ve kullanıcı adı gibi benzersiz alanlarda hatalara yol açar.

Projenizi birlikte hayata geçirelim

İstanbul merkezli yazılım ekibimizle web, mobil ve yapay zekâ odaklı projelerinizi görüşün.

Bize yazın