Düz metin
Kodlama > Karakter kodlamaları

Ana madde: Karakter kodlaması
1960'ların başlarından önce bilgisayarlar metin yazmaktan ziyade sayılarla yoğun hesaplama için kullanılıyordu ve bellek son derece pahalıydı. Bilgisayarlar genellikle her karakter için yalnızca 6 bit ayırır ve yalnızca 64 karaktere izin verirdi ― A-Z, a-z ve 0-9 için kodlar atandığında yalnızca 2 kod kalırdı: bu da yeterli değildi. Çoğu bilgisayar küçük harfleri desteklememeyi tercih etti. Bu nedenle, Roberto Busa'nın Index Thomisticus, Brown Corpus ve diğerleri gibi ilk metin projeleri, aslında büyük harf olması amaçlanan harflerin önüne bir yıldız işareti koymak gibi kurallara başvurmak zorunda kaldı.
IBM'den Fred Brooks, bir gün insanlar metin işlemek isteyebileceği için 8 bit uzunluğundaki baytlara geçilmesini şiddetle savundu ve kazandı. IBM EBCDIC kullanmasına rağmen, o andan itibaren çoğu metin ASCII'de kodlanmaya başlandı, (yazdırılmayan) kontrol karakterleri için 0'dan 31'e kadar değerler ve harfler, rakamlar ve noktalama işaretleri gibi grafik karakterler için 32'den 127'ye kadar değerler kullanıldı. Çoğu makine karakterleri 7 yerine 8 bitte saklıyor, kalan biti yok sayıyor ya da sağlama toplamı (CRC) olarak kullanıyordu.
ASCII'nin neredeyse her yerde bulunması büyük bir yardımdı, ancak uluslararası ve dilsel kaygıları gidermekte başarısız oldu. Dolar işareti ("$") İngiltere'de kullanışlı değildi ve İspanyolca, Fransızca, Almanca, Portekizce ve diğer birçok dilde kullanılan aksanlı karakterler ASCII'de tamamen mevcut değildi (Yunanca, Rusça ve çoğu Doğu dilinde kullanılan karakterlerden bahsetmiyorum bile). Birçok kişi, şirket ve ülke ihtiyaç duydukları ekstra karakterleri tanımladılar -genellikle kontrol karakterlerini yeniden atadılar veya 128 ila 255 aralığındaki değerleri kullandılar. 128'in üzerindeki değerlerin kullanılması 8. bitin sağlama toplamı olarak kullanılmasıyla çelişir, ancak sağlama toplamı kullanımı yavaş yavaş ortadan kalkmıştır.
Bu ek karakterler, farklı ülkelerde farklı şekilde kodlanıyordu ve bu da metinlerin, orijinal kurallarını anlamadan çözülmesini imkansız hale getiriyordu. Örneğin, bir tarayıcı bir karakter kümesini başka bir karakter kümesi olarak yorumlamaya çalışırsa ` yerine ¬A' görüntüleyebilir. Uluslararası Standardizasyon Örgütü (ISO) sonunda çeşitli dillere uyum sağlamak için ISO 8859 altında birkaç kod sayfası geliştirdi. Bunlardan ilki (ISO 8859-1) "Latin-1" olarak da bilinir ve Latin tabanlı karakterler kullanan Avrupa dillerinin çoğunun (hepsinin değil) ihtiyaçlarını karşılar (hepsini kapsayacak kadar yer yoktu). Daha sonra ISO 2022, dosya ortasında farklı karakter setleri arasında "geçiş" için kurallar sağlamıştır. Diğer birçok kuruluş bunların varyasyonlarını geliştirdi ve uzun yıllar boyunca Windows ve Macintosh bilgisayarlar uyumsuz varyasyonlar kullandı.
Metin kodlama durumu gittikçe daha karmaşık hale geldi ve ISO ve Unicode Consortium tarafından bilinen tüm (veya en azından şu anda bilinen tüm) dilleri kapsayabilecek tek ve birleşik bir karakter kodlaması geliştirme çabalarına yol açtı. Bazı anlaşmazlıklardan sonra,[kaynak belirtilmeli] bu çabalar birleştirildi. Unicode şu anda 1.114.112 kod değerine izin vermekte ve neredeyse tüm modern metin yazma sistemlerinin yanı sıra birçok tarihi ve matbaa dingbatları, matematiksel semboller gibi dilsel olmayan birçok karakteri kapsayan kodlar atamaktadır.
Metin, kodlamasına bakılmaksızın düz metin olarak kabul edilir. Alıcının metni düzgün bir şekilde anlayabilmesi veya işleyebilmesi için hangi kodlamanın kullanıldığını bilmesi (veya anlayabilmesi) gerekir; ancak kullanılan bilgisayar mimarisi veya veriyi oluşturan program (varsa) tarafından tanımlanan ikili yapılar hakkında herhangi bir şey bilmesine gerek yoktur.
Düz metnin belirli kodlamasını açıkça belirtmenin belki de en yaygın yolu bir MIME türü kullanmaktır.
E-posta ve HTTP için varsayılan MIME türü "text/plain"dir. -- biçimlendirme içermeyen düz metin.
Hem e-posta hem de HTTP'de sıklıkla kullanılan bir diğer MIME türü "text/html; charset=UTF-8" -- HTML biçimlendirmesiyle UTF-8 karakter kodlaması kullanılarak temsil edilen düz metin.
Bir başka yaygın MIME türü de "application/json" -- JSON işaretlemesiyle UTF-8 karakter kodlaması kullanılarak temsil edilen düz metin.
Karakter kodlamasına ilişkin herhangi bir açık gösterge olmadan bir belge alındığında, bazı uygulamalar hangi kodlamanın kullanıldığını tahmin etmeye çalışmak için karakter kümesi algılama kullanır.