Ana içeriğe geç

Dosya Formatları

TXT Nedir? Düz Metin, Karakter Kodlaması ve UTF-8

TXT, yalnızca karakterlerden ve satır sonlarından oluşan en sade belge biçimidir. Ama kodlama, BOM ve satır sonu farkları yüzünden en çok sorun çıkaranlardan biridir. Hepsini tek tek açıklıyoruz.

Yazar: Hemen Dönüştür Editör EkibiYayınlanma: 7 dk okuma

Üzerinde TXT yazan dosya rozeti

TXT, bilgisayardaki en sade belge biçimidir: Kalın yazı yok, yazı tipi yok, sayfa düzeni yok; yalnızca karakterler ve satır sonları var. Bu sadelik onu son derece taşınabilir kılar. Elli yıl önce yazılmış bir metin dosyasını bugün de açabilirsiniz ve bugün yazdığınızı muhtemelen elli yıl sonra da açabileceksiniz. Ama "düz metin" sanıldığı kadar basit değildir. Türkçe karakterlerin "ü" ya da "?" olarak görünmesi, satırların tek satıra yapışması, dosyanın başında görünmeyen bir karakter olması gibi sorunların hepsi TXT'nin içinde gizlenen bir ayrıntıdan kaynaklanır: karakter kodlaması. Bu yazıda TXT dosyasının nasıl çalıştığını ve bu sorunları nasıl çözeceğinizi anlatıyoruz.

TXT nedir?

TXT uzantılı dosya, içinde yalnızca metin karakterleri bulunan bir dosyadır. Bir başlık bölümü, meta veri ya da biçim bilgisi yoktur; dosyanın her baytı doğrudan metne aittir. Burada kritik soru şudur: Hangi bayt hangi karaktere karşılık geliyor? Bu eşlemeye karakter kodlaması denir ve TXT dosyasının kendisi hangi kodlamayla yazıldığını çoğu zaman söylemez. Dosyayı açan program bunu tahmin etmek zorundadır.

Kısa tarihçe: ASCII'den UTF-8'e

ASCII ilk olarak 1963'te ASA X3.4-1963 standardıyla yayımlandı. 7 bit kullanır ve 128 karakter tanımlar: İngiliz alfabesi, rakamlar, noktalama işaretleri ve satır sonu gibi kontrol karakterleri. Türkçedeki ç, ğ, ı, İ, ö, ş, ü harfleri ASCII'de yoktur.

Bu boşluğu doldurmak için 8 bitin kalan 128 değerini farklı dillere ayıran kod sayfaları ortaya çıktı. Türkçe için iki önemli kod sayfası vardır: ISO-8859-9 (Latin-5) ve Windows'un kullandığı Windows-1254. Sorun şu ki aynı bayt farklı kod sayfalarında farklı harf anlamına gelir. Örneğin FD baytı Windows-1254'te "ı", Batı Avrupa dilleri için kullanılan Windows-1252'de "ý" harfidir. Kod sayfasını yanlış tahmin eden bir program Türkçe metni bozuk gösterir.

Kalıcı çözüm Unicode oldu. Unicode dünyadaki tüm yazı sistemlerinin karakterlerine tek bir numara verir; UTF-8 ise bu numaraları baytlara çevirmenin en yaygın yoludur. Rob Pike'ın anlattığına göre UTF-8, Eylül 1992 civarında bir gece New Jersey'deki bir lokantada Ken Thompson tarafından bir kağıt servisin üzerinde tasarlandı. Bugünkü tanımı Kasım 2003 tarihli RFC 3629'dadır: UTF-8, U+0000 ile U+10FFFF arasındaki her karakteri 1 ile 4 bayt arasında kodlar ve ASCII karakterleri ASCII'dekiyle aynı tek baytla yazar.

UTF-8'in ne kadar yaygınlaştığını web üzerinden görmek mümkün: W3Techs'in 15 Ekim 2026 tarihli verisine göre karakter kodlaması bilinen web sitelerinin %99,1'i UTF-8 kullanıyor. ISO-8859-1 %0,8, Windows-1252 ise %0,2 ile onu izliyor.

Bir TXT dosyasında neler bulunur?

Karakterler ve baytlar

"Şeker" kelimesini UTF-8 ve Windows-1254 ile kaydettiğinizde farklı baytlar oluşur:

Metin:          Ş     e   k   e   r
UTF-8:          C5 9E 65  6B  65  72   (6 bayt)
Windows-1254:   DE    65  6B  65  72   (5 bayt)

UTF-8 ile kaydedilmiş bu dosyayı Windows-1254 sanan bir program C5 ve 9E baytlarını iki ayrı harf olarak gösterir; tersine, Windows-1254 dosyasını UTF-8 sanan program DE baytını geçersiz sayıp yerine "�" koyar. Türkçe karakter bozulmalarının neredeyse tamamı bu iki senaryodan biridir.

BOM (bayt sırası işareti)

Bazı programlar UTF-8 dosyanın başına EF BB BF baytlarını ekler. Bu, U+FEFF karakterinin UTF-8 halidir ve "bu dosya UTF-8'dir" anlamında bir imza olarak kullanılır. RFC 3629 bu imzanın her zaman bu üç baytla görüneceğini belirtir. Unicode SSS'sine göre UTF-8'de BOM zorunlu değildir, yalnızca bir imzadır; dosya başında ASCII karakter bekleyen protokollerde ise kullanılmaması önerilir. Pratikte BOM, Windows'taki bazı eski programların ve Excel'in UTF-8 dosyayı doğru tanımasına yardım eder; ama Unix kabuk betiklerinde ya da bazı yazılımların okuduğu yapılandırma dosyalarında sorun çıkarabilir.

UTF-16 kodlamasında ise BOM daha da önemlidir, çünkü baytların sırasını (küçük ya da büyük uçlu) belirtir: FF FE küçük uçlu, FE FF büyük uçlu UTF-16 demektir.

Satır sonları

Satırın bittiğini gösteren karakter de işletim sistemine göre değişir:

SistemSatır sonuBaytlar
WindowsCRLF0D 0A
Linux, macOSLF0A
Klasik Mac OS (OS X öncesi)CR0D

Uzun yıllar Windows'un Not Defteri yalnızca CRLF'i tanıyordu; Linux'ta yazılmış bir dosyayı açtığınızda bütün metin tek satırda görünüyordu. Microsoft, 8 Mayıs 2018'de duyurduğu güncellemeyle Not Defteri'ne LF ve CR desteği ekledi; bu değişiklik Windows 10'un 1809 sürümüyle kullanıcılara ulaştı.

Nerelerde kullanılır?

  • Notlar ve taslaklar: Biçim gerektirmeyen hızlı notlar.
  • Yazılım dünyası: README dosyaları, lisans metinleri, kaynak kodu, yapılandırma dosyaları ve günlük (log) kayıtları.
  • Veri alışverişi: Farklı sistemler arasında aktarılan düz listeler ve dışa aktarımlar.
  • Uzun süreli saklama: Program bağımlılığı olmadığı için arşivlenecek metinler.
  • Erişilebilirlik ve işleme: Ekran okuyucular, arama motorları ve metin analizi araçları için en temiz girdi.

Güçlü ve zayıf yönleri

Güçlü yönleri: Her cihaz ve her işletim sistemi açar. Dosyalar çok küçüktür. Program sürümüne bağımlılık yoktur, bozulma riski çok düşüktür. Sürüm kontrol sistemleri (Git gibi) değişiklikleri satır satır gösterebilir. Makro ya da gömülü nesne taşıyamadığı için güvenlidir.

Zayıf yönleri: Biçim, görsel, tablo ya da bağlantı içeremez. Kodlama dosyanın içinde yazmadığı için yanlış tahmin edilebilir. Satır sonu farkları farklı sistemler arasında küçük ama can sıkıcı sorunlar çıkarır. Başlık ve liste gibi yapıya ihtiyaç duyuyorsanız Markdown daha iyi bir seçenektir.

Hangi programlar açar?

Windows'ta Not Defteri, macOS'te TextEdit, Linux'ta gedit ve benzeri düzenleyiciler TXT açar. Tarayıcılar da metin dosyalarını doğrudan görüntüleyebilir. Visual Studio Code, Notepad++ ve Sublime Text gibi gelişmiş düzenleyiciler kodlamayı ve satır sonu türünü durum çubuğunda gösterir, ikisini de tek tıkla değiştirmenize izin verir. Kodlama sorunlarını teşhis etmek için en pratik araçlar bunlardır.

Sık karşılaşılan sorunlar ve çözümleri

Türkçe karakterler "ü", "ı" gibi görünüyor

Dosya UTF-8 ile kaydedilmiş, ama okuyan program onu Windows-1252 ya da 1254 sanıyor. Dosyayı kodlamayı seçebildiğiniz bir düzenleyicide UTF-8 olarak yeniden açın. Excel'de bir CSV ya da metin dosyası bu şekilde görünüyorsa, dosyayı BOM'lu UTF-8 olarak kaydetmek genellikle sorunu çözer.

Türkçe karakterlerin yerinde "?" ya da "�" var

Dosya Windows-1254 gibi eski bir kod sayfasıyla kaydedilmiş, ama UTF-8 olarak okunuyor. Düzenleyicide kodlamayı Windows-1254 (Türkçe) seçerek açın, ardından UTF-8 olarak kaydedin. Metin "?" ile kaydedilmişse orijinal karakterler kaybolmuştur; kaynağa dönmeniz gerekir.

Bütün metin tek satırda görünüyor

Eski bir düzenleyici LF satır sonlarını tanımıyordur. Güncel Not Defteri ya da gelişmiş bir düzenleyici kullanın veya satır sonlarını CRLF'e çevirin.

Dosyanın başında görünmeyen bir karakter var

Bu genellikle BOM'dur. Bir betik ya da yapılandırma dosyası ilk satırda hata veriyorsa dosyayı "BOM'suz UTF-8" olarak kaydedin.

TXT dönüştürme ipuçları

Dönüştürücümüzde TXT dosyaları sunucumuza yüklenir ve 30 dakika içinde silinir. Okuma sırasında kodlama otomatik tespit edilir: Önce BOM'a bakılır (UTF-8, UTF-16 küçük ve büyük uçlu), BOM yoksa dosyanın geçerli UTF-8 olup olmadığı kontrol edilir, değilse Windows-1254 (Türkçe) kabul edilir. Böylece Türkçe Windows'ta eski yöntemle kaydedilmiş dosyalardaki harfler bozulmaz. İçinde çok sayıda NUL baytı bulunan dosyalar metin değil ikili dosya sayılır ve "dosya bir metin dosyası değil" uyarısı verilir.

  • TXT'den Word'e ve TXT'den PDF'e dönüştürmede her satır bir paragraf olur, boş satırlar korunur. Satır başındaki girintiler (kod, şiir ya da dilekçe maddeleri gibi) kaybolmasın diye bölünmez boşluklara çevrilir; satır başındaki sekmeler dört boşluk olarak aktarılır.
  • TXT'den Markdown'a dönüştürme, düz bir metni sonradan başlık ve listelerle zenginleştirmek için iyi bir başlangıç noktasıdır.
  • Ters yönde, PDF'ten TXT'ye ya da Word'den TXT'ye dönüştürdüğünüzde biçimlendirme atılır, başlıklar ve paragraflar boş satırlarla ayrılır. Ürettiğimiz TXT dosyaları, Türkçe karakterlerin Not Defteri ve Excel gibi programlarda da doğru görünmesi için BOM'lu UTF-8 olarak kaydedilir.

Sık Sorulan Sorular

TXT dosyası hangi kodlamayla kaydedilmeli?

Yeni dosyalar için UTF-8. Tüm dilleri destekler ve web'de neredeyse evrensel hale gelmiştir. Dosyayı yalnızca BOM'suz UTF-8 bekleyen bir yazılım okuyacaksa BOM eklemeyin; Excel gibi programlarda açılacaksa BOM eklemek işe yarar.

UTF-8 ile UTF-8 BOM arasındaki fark nedir?

İçerik aynıdır; BOM'lu dosyanın başında yalnızca EF BB BF baytları vardır. Bu imza bazı programların kodlamayı doğru tanımasına yardım eder, bazı programlarda ise ilk satırda görünmeyen bir karakter olarak sorun çıkarabilir.

TXT ile RTF arasındaki fark nedir?

TXT yalnızca karakter içerir. RTF ise kalın, italik, yazı tipi ve tablo gibi biçim bilgilerini metin içine gömülü kontrol komutlarıyla taşır. Biçime ihtiyacınız yoksa TXT daha sade ve taşınabilirdir.

Bir TXT dosyasının kodlamasını nasıl öğrenirim?

Visual Studio Code ya da Notepad++ gibi bir düzenleyici kodlamayı durum çubuğunda gösterir. Not Defteri'nin güncel sürümleri de durum çubuğunda kodlamayı ve satır sonu türünü gösterir.

TXT dosyası virüs taşıyabilir mi?

Düz metin dosyası kendi başına çalıştırılabilir kod içermez. Ancak "belge.txt.exe" gibi çift uzantılı dosyalara dikkat edin; Windows'ta dosya uzantılarını görünür yapmak bu tür hileleri fark etmenizi kolaylaştırır.

Kaynaklar

İlgili dönüştürücüler

Tüm yazılar