Karakter kodlaması
Unicode kodlama modeli > Karakter kodlama biçimi

Karakter kodlama biçimi (İngilizce kısaltmasıyla CEF), kodlu karakter kümesinde bulunan kod noktalarının, sayıları belirli uzunluktaki bitlerle ikili biçimde temsil eden bir sistem üzerinde (yani tüm bilgisayar sistemlerinde) depolanabilecek bir şekilde iki tabanında ifade edilen kod değerlerine nasıl dönüştürüleceğini belirleyen kurallar bütünüdür.
Bilgisayar sistemleri, ikil verileri tek tek bitler halinde kullanmaz. Verinin işlenmesi ve alınıp verilmesini kolaylaştırabilmek için verileri belirli uzunluktaki kalıplar halinde ifade ederler. Bu yüzden, kod noktaları da bitlerle ifade edilirken, bir veya daha çok sabit uzunluklu kod birimiyle ifade edilmelidir. Bu kod birimlerinin uzunluğu belirlenirken, kullanılan bilgisayar sisteminin teknik özelliklerini göz önünde bulundurmak gereklidir. Bunlar bayt uzunluğu ve sözcük uzunluğudur. Bellekte adreslenebilen en küçük veri parçası bayt olarak adlandırılır. Baytlar genellikle 8-bit uzunluğundadır. Sözcük ise işlemci tarafından tek seferde işlenebilen en büyük veri uzunluğudur ve genelde iki bayttır (16-bit). 8-bitlik baytlar kullanan bir sistemde veriler 8 bit ve katları halinde okunur, yazılır ve aktarılır.
Örneğin karakter kodlamasında kod biriminin 16-bit uzunluğunda seçildiğini düşünelim. Böyle bir sistemde 0 ile 65.535 arasındaki sayılar (yani Unicode Temel Çokdilli Düzleminde bulunan kod noktası sayısı) tek bir 16-bitlik birim ile yazılabilirken daha büyük sayılar için birden fazla birim kullanılması gerekecektir. Tek bir kod birimi de tam olarak iki baytla (8-bitlik) ifade edilebilir. 32-bitlik birimler kullanıldığında ise tüm kod noktaları birer birimle ifade edilebilir. Ancak bu durumda verinin kapladığı yer çok artacak ve dolayısıyla taşınması zorlaşacaktır. İşte karakter kodlama biçimlerinin uygun bir şekilde yönetmesi gereken durum budur: sınırlı bir aralıkta bulunan  (örneğin 0 ile 1.4 milyon arası) tek bir kod noktasını, her biri daha sınırlı bir aralıktaki sayıları temsil edebilen bir ya da daha fazla kod biriminden (örneğin her biri 0 ile 65.525 arası sayıları temsil edebilen 16-bitlik kod birimlerinden) oluşan kod değerlerine dönüştürmek için bir yöntem belirler. Bu yöntemi belirlerken, verinin işlenme kolaylığı ve kaplayacağı yeri göz önünde bulundurmaları gerekir.
En basit karakter kodlama biçimi, her bir kod noktasının tek bir kod birimiyle ifade edilebileceği şekilde büyük kod birimleri seçilerek yapılan bir kodlama olacaktır (bir kod noktasının bir kod biriminden oluşan bir kod değerine karşılık geldiği). Bu yöntem, 8 bitlik birimlere sığabilen kodlanmış karakter kümeleri için (örneğin eskiden kalan genişletilmiş ASCII kodlamalarının çoğu gibi) gayet iyi ve 16 bitlik birimlere sığabilenler için de (örneğin Unicode'un eski sürümleri, görece daha az sayıda karakter içerdiği için) az çok iyi işlemektedir. Ancak kodlu karakter kümesinin boyutu büyüdükçe bu yöntem giderek verimsizleşmektedir. Örneğin Unicode'un günümüzdeki sürümündeki her karakteri bu yöntemle kodlamak için 21 bit uzunluğunda kod birimleri kullanmak gerekecektir. Hatta çoğu sistem verileri 8-bit ve katları şeklinde temsil ettiğinden kod birimi en az 24-bit uzunluğunda olacaktır. Böyle bir sistem veri boyutu sorunun yanı sıra eski sistemlerde uygulanması da zor bir sistem olduğundan kullanışsızdır. Bu yüzden daha küçük kod birimleri kullanan çeşitli kodlama biçimleri tasarlanmıştır. Unicode'un ileriki sürümleriyle çalışan sistemler ya UTF-8 ya da UTF-16 kodlama biçimlerini kullanmaktadır. UTF-8, kod noktalarını bir veya daha fazla sayıda 8-bitlik kod birimleriyle ve UTF-16 da iki adet 16-bitlik kod birimiyle ifade eder.
Karakter kodlama biçimleri daha önce de belirtildiği gibi her karakteri tek bir kod birimiyle kodlarsa, bu şekilde kodlanmış bir karakter dizisinde art arda gelen karakterlerin nerede başlayıp nerede bittiği belirli olacaktır (her karakter sabit uzunluktaki bir bit dizisiyle ifade edildiğinden). Ancak, UTF-8 ve UTF-16 gibi karakterlerin bir veya fazla kod biriminden oluşabildiği kodlamalarla kodlanmış karakter dizileri yazılımlar tarafından işlenirken, bir karakterin nerede bitip diğerinin nerede başladığının anlaşılabilmesi önemli bir sorun olarak ortaya çıkmıştır. Farklı kodlama biçimleri farklı yöntemler kullanarak bu sorunun üstesinden gelmişlerdir. Örneğin kısaca söylemek gerekirse UTF-8 kodlaması bu sorunu, kodlama esnasında kod birimlerinin başına o kod biriminin yeni bir karakterin başlangıcı mı yoksa bir önceki kod biriminin kodladığı karakterin devamı mı olduğunu belirten bir takım işaretçi bitler koyarak çözmüştür.