Kodlama, bir karakter kümesindeki baytlar ve karakterler arasındaki bir eşlemedir, bu nedenle baytlar ve karakterler arasındaki farkı tartışmak ve anlamak yararlı olacaktır .
Baytları 0 ile 255 arasında sayılar olarak düşünürken karakterler "a", "1", "$" ve "Ä" gibi soyut şeylerdir. Kullanılabilir tüm karakter kümesine karakter kümesi denir .
Her karakter, onu temsil etmek için kullanılan bir veya daha fazla baytlık bir diziye sahiptir; ancak, baytların tam sayısı ve değeri kullanılan kodlamaya bağlıdır ve birçok farklı kodlama vardır.
Çoğu kodlama, karakter başına tek bir bayt (aslında sadece 7 bit) olan ve ABD İngilizcesinde kullanılan ortak karakterlerin birçoğunu içeren 128 karakter içeren eski bir karakter kümesine ve ASCII adı verilen kodlamaya dayanır.
Örneğin, ASCII karakter kümesinde 60 ila 65 değerleri ile temsil edilen 6 karakter vardır.
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
Tam ASCII kümesinde, kullanılan en düşük değer sıfır ve en yüksek değer 127'dir (her ikisi de gizli kontrol karakteridir).
Bununla birlikte, temel ASCII'nin sağladığından daha fazla karaktere ihtiyacınız olduğunda (örneğin, aksanlı harfler, para birimi simgeleri, grafik sembolleri vb.), ASCII uygun değildir ve daha kapsamlı bir şeye ihtiyacınız vardır. 128 karakter tüm karakterlere sığması için yeterli olmadığından daha fazla karaktere (farklı bir karakter setine) ve farklı bir kodlamaya ihtiyacınız vardır. Bazı kodlamalar bir bayt (256 karakter) veya altı bayta kadar sunar.
Zamanla birçok kodlama yaratıldı. Windows dünyasında CP1252 veya ISO-8859-1 vardır, oysa Linux kullanıcıları UTF-8'i tercih etme eğilimindedir. Java yerel olarak UTF-16 kullanır.
Bir kodlamadaki bir karakter için bir bayt değer sırası, başka bir kodlamada tamamen farklı bir karakter anlamına gelebilir, hatta geçersiz olabilir.
Örneğin, ISO 8859-1 , â değer bir bayt ile temsil edilir 226
, oysa UTF-8 iki bayttır 195, 162
. Ancak, içinde ISO 8859-1 , 195, 162
iki karakter olurdu ¢, Ã .
Bilgisayarlar karakterler hakkında dahili olarak veri depoladığında veya başka bir sisteme ilettiğinde bayt depolar veya gönderir. Bir dosyayı açan veya mesaj alan bir sistemin baytları gördüğünü düşünün 195, 162
. Bunların hangi karakterler olduğunu nasıl bilebilir?
Sistemin bu baytları gerçek karakterler olarak yorumlaması (ve böylece bunları göstermesi veya başka bir kodlamaya dönüştürmesi) için, kullanılan kodlamayı bilmesi gerekir. Bu nedenle kodlama XML başlıklarında görünür veya bir metin düzenleyicisinde belirtilebilir. Sisteme bayt ve karakterler arasındaki eşlemeyi söyler.