Tartalomjegyzék
Karakterkódolás
- Szerző: Sallai András
- Copyright © 2012, Sallai András
- Szerkesztve: 2012, 2014, 2015, 2017
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Mivel a számítógép alapvetően számokkal dolgozik, ezért minden általunk használt írásjelnek meg kell feleltetni egy számot. Az írásjel-szám megfeleltetés így egy kódtáblát eredményez.
BCD
Binary Coded Decimal (BCD)
Binárisan kódolt decimális számok.
A BCD egy 4 bites sorozatot használ, amely számokat reprezentál.
Decimális | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
BCD | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
Például 123 így van kódolva:
0001 0010 0011
Tárolt programú vezérlések időzítésénél előfordul.
A négyes csoportokat tetrádnak hívjuk, amely görögből származik és négyes csoportot jelent.
19-ig ábrázolhatjuk a számokat a következő formában:
BCD kódtáblázat | |||
---|---|---|---|
Decimális szám | BCD kód | Decimális szám | BCD kód |
0 | 0000 | 10 | 0001 0000 |
1 | 0001 | 11 | 0001 0001 |
2 | 0010 | 12 | 0001 0010 |
3 | 0011 | 13 | 0001 0011 |
4 | 0100 | 14 | 0001 0100 |
5 | 0101 | 15 | 0001 0101 |
6 | 0110 | 16 | 0001 0110 |
7 | 0111 | 17 | 0001 0111 |
8 | 1000 | 18 | 0001 1000 |
9 | 1001 | 19 | 0001 1001 |
Az összeadás szokásos művelet a BCD kódokkal. Ha összeadás esetén átvitel történik, akkor az eredmény négyeshez (terádhoz) hozzá kell adni 0110-át.
Adjuk össze 19 és 5 számokat.
0001 1001 0000 0101 _________ 0001 1110 0110 _________ 0010 0100
A 0110 hozzáadásával korrigáltuk a számot.
EBCDIC
Extended Binary-Coded Decimal Interchange Code.
Binárisan kódolt decimális kódrendszer az ASCII-től függetlenül alakult ki. Az IBM által 1963 és 1964 között kialakított kódrendszer. Elsőként az IBM System/360 rendszeren használták. Az ASCII szabvány fő támogatója akkoriban az IBM, de nem volt megvalósított verziójuk.
Itt használták
- IBM nagyszámítógépein
- System/360
- z/OS
- OS/390
- VM
- VSE
- IBM minikomputerein
- OS/400
- i5/OS
A binárisan kódolt decimális (BCD) kódrendszer kiterjesztéseként jött létre.
Jellemzője:
- 8 bites, szemben a 7-bites ASCII-vel
- számtalan változata létezik, országok nyelvéhez igazítva
- néhány Kelet-Ázsiai ország a 2 byte-os megfelelőjét használja
- japán
- kínai
- koreai
ASCII
7-bites ASCII
Az eredeti amerikai kódtábla, a számítógépek elterjedése előtt. Ebben az időben is 8-bittel dolgoztak, de a 8-dik bitet másra használták. Az angol betűk tárolásához a 7 bit teljességgel elég volt.
karakter | decimálisan | kód |
---|---|---|
NUL | 0 | 0000000 |
… | … | |
a | 97 | 1100001 |
b | 98 | 1100010 |
c | 99 | 1100011 |
d | 100 | 1100100 |
e | 101 | 1100101 |
… | … | |
~ | 126 | 1111110 |
127 | 1111111 |
8-bites ASCII
A számítógépek elterjedése magával hozott egy problémát. A 7-bites ASCII kódtábla nem tartalmazott minden nyelvterületen használható betűket. Így használni kezdték a 8-dik bitet is.
A 8-bites ASCII-t minden nyelvterületen saját karaktereik leírására használták. Ilyen nyelvterületek:
- Nyugat Európai
- Szabvány: ISO-8859-1
- Gyakran így említik: Latin 1
- é, ü
- dán, holland (részben), angol, feröeri,
- finn (részben) francia (részben), német,
- izlandi, ír, olasz, norvég, portugál,
- réto-román, skót, spanyol, svéd, albán, afrikaans, szuahéli
- Közép Európai
- Szabvány: ISO-8859-2
- Gyakran így említik: Latin 2
- ő, ű
- bosnyák, lengyel, horváth, cseh, szlovák, szlovén, magyar
- 3 latin3
- török, máltai, eszperantó
- 4 latin4
- észt, lett, litván, grönlandi, számi
- 5 latin/cirill
- cirill ábécé (belorusz, bolgár, macedon, orosz, szerb, ukrán)
- 6 latin/arab
- arab
- 7 latin/görög
- görög, ó-görög
- 8 latin/héber
- héber
- 9 latin5 török
- ritkán használt izlandi és török; kurd nyelv
- 10 latin6 északi
- a latin4 átrendezése
- 11 latin1/thai
- thai
- 12
- nem készült el
- 13 latin7/balti római
- balti római (a latin4-ből és a latin-6-ból hiányzó)
- 14 latin8 kelta
- kelta nyelvek (gail és breton)
- 15 latin9
- 8859-1 felülvizsgálata (€)
- 16 latin10
- Latin-10 délkelet-európai
- albán, horvát, magyar, olasz, lengyel,
- román, szlovén
- finn, francia, német, ír (új írású)
karakter | decimálisan | kód |
---|---|---|
NUL | 0 | 00000000 |
… | … | |
a | 97 | 01100001 |
b | 98 | 01100010 |
c | 99 | 01100011 |
d | 100 | 01100100 |
e | 101 | 01100101 |
… | … | |
254 | 11111110 | |
255 | 11111111 |
Unicode
Bevezetés
A Unicode kódolást azért hozták létre, mert minden nyelvterületen más és más kódolást használtak. Ha egyik nyelvterületről a másikra kellett adatokat küldeni, akkor mindig át kellett kódolni az adatokat. A Unicode kódolást úgy alkották meg, hogy a föld összes nyelvterületének betűit, ábráit lefedje.
A Unicodenak több megvalósítása is van. Ilyenek:
- UTF-8 - A karakterek 1, 2, 3 vagy 4 bytes
- UTF-16 - A karakterek 2 vagy 4 bytes
- UTF-32 - Minden karakter 4 bytes, azaz 32 bit
- stb.
A Unicode karakterek gyűjteménye:
UTF-8
Egy Unicode megvalósítás, változó bájthosszúságú kódolás. Hogy hány bájton tárolunk egy karaktert változó. Ha például csak az angol ábéc betűig használjuk, akkor 1 bájt. Magyar ékezetesek használata esetén 2 bájton tárolódnak a karakterek. A japán kara (üres) szó 3 bájton van tárolva.
A magyar ékezetesek
á | 00e1 |
í | 00ed |
é | 00e9 |
ö | 00f6 |
ó | 00f3 |
ü | 00fc |
ő | 0151 |
ű | 0171 |
Han írás
A következő unicode karakterek csak telepített fontkészlet mellett láthatók. Debian GNU/Linux alapú rendszereken például: apt install ttf-hanazono
üreskéz:
空 | 7a7a | HTML: 31354 |
手 | 624b |
Az írásjelek UTF-8 esetén 3 bytes, UTF-16 bytes esetén 2 bytes, UTF-32 esetén 4 byteson tárolódnak.
Linuxon unicodebevitel:
Ctrl + Shift + U
Ekkor megjelenik egy U betű aláhúzva. Ha nem jelenik meg, akkor az aktuális program nem támogatja. Az U betű után beírjuk a bevinni kívánt kódot.
Unicode beszúró más rendszerekre:
Az unicodeinput program, ha egyszer használtuk, nem záródik be, az Alt+Plusz billentyűvel érhető el.
Víz | 水 | 6c34 | UTF-16 és UTF-8 esetén 2 bytes |
入 | 5165 | bemenet |
門 | 9580 | kapu |
Sumér-akkád ékírás
A következő karakterek 4 bájton tárolódnak utf-8 esetén is.
A sumér-akkád ékírás kódjai 12000–1236E és 12400–12473 között vannak (angolul: cuneiform).
írásjel | kód |
---|---|
𒀀 | 12000 |
𒀁 | 12001 |
𒀂 | 12002 |
… | |
𒍮 | 1236E |
… | |
𒐀 | 12400 |
𒐁 | 12401 |
… | |
𒑳 | 12473 |
Ha nincsenek telepítve az őskori fontok, akkor a fenti táblázatban csak négyzetek vannak. Ezért a következő ábrán kép formájában látjuk ugyanezt:
A megjelenítéshez Ancient Scripts Unicode fontkészlet szükséges. Ősköri fontok készlete.
Debian GNU/Linuxon, Ubuntun, LinuxMint rendszeren így telepíthető:
apt install ttf-ancient-fonts
Windowson kiindulásnak:
Magyar rovásírás
A magyar rovásírás betűit a következő kódpontokon érhetjük el: U+10C80 - U+10CFF
A következő karakterekhez szükség van megfelelő fontokra:
𐲀𐲁
Szükséges fontok:
- https://github.com/OldHungarian/old-hungarian-font (Release-re kell kattintani)
Még néhány Unicode lehetőség
Az írás mellett többféle szimbólum is megjeleníthető a Unicode segítségével. Néhány példa:
☉ ☿ ♀ ♁ ☽ ♂ ♃ ♄ ⛢ ♆ ♇
⛈ ⛅ ☼
🍏 🍔 🍷 🍅
𝄞♩ ♩ ♩ ♪ 𝄽 ♫ ♫ ♫ ♬ 𝅘𝅥𝅯 𝅗𝅥
☠ ☢ ☣ ☤
♖ ♘ ♗ ♔ ♕ ♗ ♘ ♖ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜
⚽ ⚾ ⛷ 🏃
- ⬭ 2b2d eilipszis
- △ 25b3 háromszög
- ⊿ 22bf derékszögű háromszög
- ⬜ 2b1c négyzet
- ▭ 25Ad téglalap
- ♢ 2662 rombusz
- ⬠ 2b20 pentagon
- ⬡ 2b21 hexagon
- ○ 25cb kör
- 𓅓 U+13153 egyiptomi hieroglif m hang, madár; mondat végét jelző jel
𓀆 𓀏 𓂡 𓀒 𓀐 𓀗 𓀙 𓀝 𓀭 𓀾 𓂝
𓇖 𓇌 𓆲
𓅓
√ ∛ ✗ ✘ ✓✔
⚀ ⚁ ⚂ ⚃ ⚄ ⚅
Alapértelmezett kódolások
Operációs rendszer | Alapértelemezett kódolás | ||
---|---|---|---|
Western Latin | Cyrillic | magyar | |
Modern Unices (*BSD, Mac OS X, GNU/Linux) | utf-8 | utf-8 | utf-8 |
Mac (OS X előtt) | applemac | maccyr | ? |
Unix (régi) | latin1 | koi8-ru | latin2 |
Windows | ansinew, cp1252 | cp1251 | cp1250 |
DOS, OS/2 | cp850 | cp866nav | cp852 |
régi DOS | cp437 |
A magyar ékezethelyesség ellenőrzésére kitalált mondatok
- árvíztűrő tükörfúrógép
- Kázmér füstölgő fűnyírót húz
- öt szép szűzlány őrült írót nyúz
- tüskés hátú kígyóbűvölő
Linkek
Unicode leírások
Han írás karaktereinek keresője:
Nemzetközi han karakter és variánsainak adatbázisa:
Kapcsolódó téma (Han írás):
Lecke:
Egyéb:
Windowsra Unicode beírásához:
ASCII-vel egyező Unicode:
Táblák: