Felhasználói eszközök

Eszközök a webhelyen


oktatas:szamitastechnika:karakterkodolas

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:szamitastechnika:karakterkodolas [2019/08/22 16:25] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​számítástechnika|<​ Számítástechnika]]
 +
 +====== Karakterkódolás ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2012, 2014, 2015, 2017
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​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:​
 +  * http://​www.unicode.org/​charts/​
 +==== 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-get install ttf-hanazono
 +
 +üreskéz:
 +| <​nowiki>​空</​nowiki>​ | 7a7a |
 +| <​nowiki>​手</​nowiki>​ | 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:​
 +  * http://​www.fileformat.info/​tool/​unicodeinput/​index.htm
 +  * http://​www.fileformat.info/​tool/​unicodeinput/​unicodeinput.zip
 +Az unicodeinput program, ha egyszer használtuk,​ nem záródik be,
 +az Alt+Plusz billentyűvel érhető el.
 +
 +
 +
 +
 +
 +| Víz | <​nowiki>​水</​nowiki>​ | 6c34 | UTF-16 és UTF-8 esetén 2 bytes |
 +
 +
 +| <​nowiki>​入</​nowiki>​ | 5165 | bemenet |
 +| <​nowiki>​門</​nowiki>​ | 9580 | kapu |
 +
 +
 +  * 入門 = Git
 +
 +
 +
 +==== 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: ​
 +
 +{{:​oktatas:​számítástechnika:​karakterkodolas_sumer-akkad-ekiras.png|}}
 +
 +
 +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-get install ttf-ancient-fonts
 +
 +Windowson kiindulásnak:​
 +  * http://​culmus.sourceforge.net/​ancient/​
 +
 +==== 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:
 +  * http://​oldhungarian.eu/​
 +  * 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 |  [[wp>​Code_page_437|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
 +  * http://​www.cs.bme.hu/​~egmont/​utf8/​
 +  * http://​hu.wikipedia.org/​wiki/​UTF-8
 +  * http://​hu.wikipedia.org/​wiki/​ISO/​IEC_10646
 +  * http://​hu.wikipedia.org/​wiki/​UTF-32/​UCS-4
 +  * http://​hu.wikipedia.org/​wiki/​Univerz%C3%A1lis_karakterk%C3%A9szlet
 +  * http://​hu.wikipedia.org/​wiki/​Unicode_karakterek_elhelyezked%C3%A9se
 +  * http://​unicode-table.com/​hu/​
 +
 +Han írás karaktereinek keresője:
 +  * http://​www.cojak.org
 +Nemzetközi han karakter és variánsainak adatbázisa:​
 +  * http://​chardb.iis.sinica.edu.tw
 +Kapcsolódó téma (Han írás):
 +  * http://​hu.wikipedia.org/​wiki/​K%C3%ADnai_%C3%ADr%C3%A1s
 +Lecke:
 +  * http://​infoerettsegi.blog.hu/​2012/​02/​04/​karakterkodolasok_a_szobeli_informatika_erettsegire
 +
 +Egyéb:
 +  * http://​en.wikibooks.org/​wiki/​LaTeX/​Special_Characters
 +
 +Windowsra Unicode beírásához:​
 +  * http://​www.fileformat.info/​tool/​unicodeinput/​index.htm
 +
 +ASCII-vel egyező Unicode:
 +  * http://​www.unicode.org/​charts/​PDF/​U0000.pdf
 +
 +Táblák:
 +  * http://​www.rikai.com/​library/​kanjitables/​kanji_codes.unicode.shtml
 +  * http://​unicode-table.com/​
 +  * https://​dev.w3.org/​html5/​html-author/​charref
  
oktatas/szamitastechnika/karakterkodolas.txt · Utolsó módosítás: 2019/08/22 16:25 szerkesztette: admin