 egy lehetséges megoldás a nyelvekben megtalálható írásjelek egységes kódtáblába foglalására. 
A szgek csak számokat képesek kezelni, ezért ki kellett találni valamilyen megoldást arra, hogy ember által érthető információkat közöljenek. Kézenfekvő volt egy megállapodás, miszerint egy bájt tárol egy karaktert, ami 256 karakter ábrázolását tette volna lehetővé. Az első számítógépek angolszász nyelvterületen készültek, és a betűket ennek megfelelően válogatták össze, és megállapodtak abban, hogy melyik szám melyik betűt jelenti. Ilyen megállapodások például az ASCII és az EBCDIC is.
A PCkel együtt az ASCII terjedt el, ami eredetileg csak 7 bitet használt, ezzel 127 különböző karaktert írt le. (angol ábécé kis- és nagybetűit, a számokat és sok nem nyomtatható karakter).
Ahogy telt az idő, felmerült az igény arra, hogy az egyes nemzetek a saját nyelvükön kommunikáljanak a számítógéppel. Ekkor az ASCII kódtábla 127-nél nagyobb elemeinek a jelentését úgy határozták meg, hogy az csak egy megadott kódlap esetén értelmezhető egyértelműen, vagyis például a 250-es szám jelentése (az általa ábrázolt karakter) attól függött, hogy milyen kódtábla szerint értelmeztük az adott szöveget. Ilyen kódtáblákat kiadott az IBM (cp437-USA; cp852) és az ISO (8859-1; 8859-2 …) is.
Ezek csak részmegoldások voltak és sok problémát okozott, hogy nem minden esetben lehetett megállapítani az ékezetes karakterek (127-nél nagyobb számok) eredetét.
A jelenleg a legelterjedtebb az UTF-8, ami változó hosszúságú kódolással (8-64 bit) reprezentálja a Unicode jeleit
1 karakter « 2 byte; 65536 elemű kódtábla (fix); első 128 elem: ASCII kódtábla első fele; többi elem: minden más egyidejűleg
