Zmatky při pouţívání češtiny a moţná řešení



Podobné dokumenty
Konverze textových formátů

Konverze textových formátů

Tato tematika je zpracována v Záznamy přednášek: str materiál: PrikladyZobrazeniCisel.pdf

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Vnitřní reprezentace dat Výpočetní technika I

Přednáška 3: Vnitřní reprezentace dat. Uložení dat v paměti počítače. Organizace dat na discích. Datové formáty. Přednáška 3:

Vnitřní reprezentace dat

XML terminologie a charakteristiky. Roman Malo

Zobrazení dat Cíl kapitoly:

Práce s textovými proměnnými v DetStudiu

Úvod do informačních technologií

Jak psát správné znaky

Algoritmy a datové struktury

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Základy XML struktura dokumentu (včetně testových otázek)

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Informatika Datové formáty

Digitální signály a kódy

Počítač jako elektronické, Číslicové zařízení

Reprezentace dat. INP 2008 FIT VUT v Brně

Informační a komunikační technologie

Pokyny pro zpracování závěrečné práce

Úvod do informačních technologií

Základní typografická pravidla

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Informace, kódování a redundance

ALGORITMIZACE A DATOVÉ STRUKTURY (14ASD) 1. cvičení

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Kódový zámek k rodinnému domu

XD16HT1 Děrná páska Semestrální práce ČVUT FEL obor STM-Softwarové inženýrství, kombinované studium 4. semestr

Trocha obrázků na začátek..

ASN.1 Abstraktní syntaktická notace 1, Abstract Syntax Notation One Kódování BER, DER

Tento příklad popíše asi nejzákladnější promoci. Kdyţ si zákazník koupí 3 kusy, dva kusy zaplatí a jeden dostane zdarma.

SADA VY_32_INOVACE_PP1

Elektronická pošta. elementární služba, výchozí pro některé další jedna z prvních síťových služeb vůbec. základní principy popisují

7. Datové typy v Javě

Ošetřování chyb v programech

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Abclinuxu.cz ITBiz AbcHost 64bit AbcPrace UnixShop Stickfish

Tvorba počítačové hry. GameJN

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

2D standard pro jízdní doklady ČD, a.s.

Jazyky pro popis dat

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Information technology - ISO 7-bit coded character set for information interchange

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Tabulka ASCII American Standard Code for Information Interchange kódovou tabulku

Využití čárového kódu v Muzeu Vysočiny Třebíč, p. o. Mgr. Antonín Žamberský, technický pracovník muzea

INFORMAČNÍ SYSTÉMY. RNDr. Karel Hrach, Ph.D. (Velká Hradební 15, pracovna 2.03) Prezentace viz Studium / Studijní materiály (v menu nalevo)

Struktura a architektura počítačů

Informatika pro moderní fyziky (8) CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Tabulka ASCII American Standard Code for Information Interchange kódovou tabulku

Základy informatiky. 03 HTML, tvorba webových stránek. Kačmařík/Szturcová/Děrgel/Rapant

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

HTML Hypertext Markup Language

INFORMAČNÍ SYSTÉMY. RNDr. Karel Hrach, Ph.D. (Velká Hradební 15, pracovna 2.03) Prezentace viz Studium / Studijní materiály (v menu nalevo)

Dokumentace ke sluţbě SMS Connect.

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

4 Datové struktury. Datové struktury. Zobrazení dat v počítači

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Složitost Filip Hlásek

(X)HTML-TAGY. VOŠ a SŠT Česká Třebová

ECDL European Computer Driving Licence. Mezinárodní koncept počítačové gramotnosti

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

MS EXCEL základy programování a algoritmizace ve VBA. Vedoucí týmu: Kristina Balogová Členové týmu: Miroslava Saňáková Nikola Pálfiová Michal Machů

Referenční příručka o čárovém kódu

Algoritmizace a programování

OCR systémy. Semestrální práce z předmětu Kartografická polygrafie a reprografie. Jakub Žlábek, Zdeněk Švec. Editor: Věra Peterová. Praha, květen 2010

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

ADT/ADS = abstraktní datové typy / struktury

Architektura protokolů

Obsah 10. přednášky: Jak bude probíhat zkouška?! Podrobné informace:

BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: Zpracování informací Anotace:

Číslo projektu CZ.1.07/1.5.00/ Škola SOŠ a SOU Hustopeče, Masarykovo nám. 1 Ing. Miriam Sedláčková Číslo

Principy počítačů I Reprezentace dat

Základní jednotky používané ve výpočetní technice

Příprava dokumentů textovým procesorem II.

BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky

Základní příkazy UNIXu (Linuxu)

7. Relační a prezentační vrstva

Formáty a dlouhodobé uložení: Identifikace, extrakce a validace

ESPTerm: videoterminál s ESP8266. Katedra měření, ČVUT FEL 2017 Bc. Ondřej Hruška

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Tvorba informačních systémů

Problematika tvorby SIP balíčků

KTE / PPEL Počítačová podpora v elektrotechnice

6. ROČNÍK ŠKOLNÍ SOUTĚŽE V PROGRAMOVÁNÍ 2013

Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Kódování a Šifrování. Iveta Nastoupilová

Uspořádání klient-server. Standardy pro Web

Úvod do programování. Lekce 1

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

INTERNET A SÍTĚ. Role při tvorbě webových aplikací. Rozhodovací vrstvy při tvorbě webových aplikací. povrch kostra struktura obsah strategie

Transkript:

Zmatky při pouţívání češtiny a moţná řešení doc. Ing. Pavel Herout, Ph.D. Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

Kódování znaků je vztah tří (čtyř) součástí abstrakce papír realita paměť počítače realita soubor na disku 0 A 1 B 2 C přirozená čísla znaková sada Coded Character Set v počítači je vše číslo 00 00 A 00 01 B 00 02 C bajty nebo násobky Character Encoding Form font na pozici 0 je obrázek A 00 A 01 B 02 C bajty kódovací schéma, kódování Character Encoding Scheme charset tvar znaku (glyph) 2

Historie 50. léta 8bitové počítače v USA ASCII všechny znaky z anglické klávesnice, tj. velká a malá neakcentovaná písmena latinky, číslice, interpunkci a speciální a řídicí znaky sedmibitový kód k dispozici 128 znaků, z toho 32 řídicích (dálnopis) 20 mezera 30 0 39 9 41 A 42 B 5A Z 61 a 62 b 7A z 7E ~ 20 mezera 30 0 39 9 41 A 42 B 5A Z 61 a 62 b 7A z 7E ~ 20 mezera 30 0 39 9 41 A 42 B 5A Z 61 a 62 b 7A z 7E ~ z 32 řídicích znaků se dnes běţně vyuţívají 09 tabulátor 0A <LF> 0D <CR> 3

Historie 60. až 80. léta 8 až 16bitové počítače mimo USA poţadavky na znaky národních abeced akcentované znaky rozšíření ASCII o zbývajících 128 znaků do 8 bitového rozsahu 128 znaků nestačí pro všechny poţadavky (jen čeština potřebuje 30 akcentovaných znaků áčďéěíňóřšťúůýţ) znakové sady (abstraktní vrstvu) vytvářeli naprosto nekoordinovaně mezinárodní standardizační instituce ISO-8859-1 aţ ISO-8859-15 národní standardizační instituce KOI-8 ČS2 firmy v návaznosti na konkrétní systém CP1250, AppleCE, IBM852 jednotlivci Kameničtí KEYBCS2 připravit kvalitní abstraktní vrstvu je problém mnoho hledisek, např. řazení, vtahy mezi malými a velkými písmeny atd. chaos nebyl problém! počítače byly izolované minimální výměna informací není e-mail ani WWW (velké disky, děrné pásky a štítky, diskety) akcenty byly záleţitostí pouze textových procesorů, které rozpoznaly svoje kódování vícejazyčné texty (např. česko-francouzský) naprosto výjimečné 4

Historie 60. až 80. léta 8 až 16bitové počítače mimo USA osmibitový kód nedělá problémy na disku nedělá problémy ani v paměti 8bitový počítač ţádná úprava 16bitové počítač vyšší bajt (pokud je pouţit) je vţdy nulový 41 A 42 B 5A Z 7E ~ 00 41 A 00 42 B 00 5A Z 00 7E ~ 41 A 42 B 5A Z 7E ~ znaková sada a kódování se jmenují stejně 5

Problémy ukázka rozdílů v abstraktní vrstvě ISO-8859-2 C1 Á C8 Č CF Ď A9 Š AB Ť AE Ţ windows-1250 IBM852 MacCentralEurope C1 Á C8 Č CF Ď 8A Š 8D Ť 8E Ţ B5 Á AC Č D2 Ď E6 Š 9B Ť A6 Ţ E7 Á 89 Č 91 Ď E1 Š E8 Ť EB Ţ velmi nebezpečná je podobnost ISO-8859-2 a windows-1250 liší se jen v 6 znacích š, ť, ţ, Š, Ť, Ţ chybně rozpoznané kódování se dá lehce přehlédnout kódování IBM852 se pouţívá na příkazové řádce program, který má kódování správně v okně, jej nemá správně na příkazové řádce existují stovky osmibitových kódování, pro češtinu je jich významných asi 10 6

Problém dokument si v sobě nenese informaci o použitém kódování tato informace se (pokud vůbec) předává jinou cestou některé jazyky pro popis dat mají moţnost uloţit informaci o pouţitém kódování HTML <html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> XML <?xml version="1.0" encoding="iso-8859-2"?> MIME Multipurpose Internet Mail Extensions Content-Type: text/plain; charset="iso-8859-2" problém je, kdyţ se hlavičky těchto souborů bezmyšlenkovitě opisují a skutečné kódování je jiné Pokud předáváte obecný dokument v osmibitovém kódování, měl by být v ISO-8859-2. toto je akademická rada, prakticky neuskutečnitelná, máme-li jiţ dokument a nemáme vhodný konverzní program u některých editorů lze kódování výstupního dokumentu přednastavit soubory jednoho projektu by měly P.Herout, mít KIV stejné - FAV kódování - ZČU 7

Problém různá synonyma osmibitových kódování totéţ kódování má různá pojmenování a to i v rámci produktů jedné firmy nová jména vymýšlejí uţivatelé, nikoliv tvůrci rozlišuje se hlavní kanonické jméno (registrované v IANA) a ostatní jména aliasy US-ASCII American Standard Code for Information Interchange ISO646-US, IBM367, ASCII, cp367, default, ascii7, ANSI_X3.4-1986, iso-ir-6, us, 646, iso_646.irv:1983, csascii, ANSI_X3.4-1968, ISO_646.irv:1991 ISO-8859-2 Latin Alphabet No. 2 ibm912, l2, ibm-912, cp912, ISO_8859-2:1987, ISO_8859-2, latin2, csisolatin2, iso8859_2, 912, 8859_2, ISO8859-2, iso-ir-101 windows-1250 Windows Eastern European cp1250, CP1250, cp5346 IBM852 MS-DOS Latin-2 852, ibm-852, cspcp852, cp852, ibm852 některé aplikace označují osmibitové charsety jako ANSI další lidová tvořivost existuje ve jmenných pojmenováních, např. Středoevropské jazyky (Windows) to znamená, ţe i kdyţ kódování známe, nemusíme dokument správně zobrazit, protoţe neznáme alias v příslušném programu (strojově) 8

Současnost znaková sada s více než 256 znaky chaos, který nevadil do konce 80. let, začíná s rozvojem Internetu výrazně vadit je poţadavek na jednotnou znakovou sadu s více neţ 256 znaky bohuţel tuto sadu začínají připravovat dvě různé instituce ISO (International Organization for Standardization) od 1989 znaková sada ISO/IEC 10646 ve zkratce UCS (Universal Character Set) Unicode (Unicode Consortium) od 1990 znaková sada Unicode ve zkratce Unicode naštěstí se obě organizace domlouvají hned na počátku prací a od roku 1991 pracují na sjednocení obou znakových sad, coţ bylo dokončeno v 1993 z běţného pohledu nemá význam obě sady rozlišovat a běţně se povaţují za synonyma a pouţívá se společné označení Unicode Problém pouze v duplicitním pojmenování, kdy se občas vyskytne UCS 9

Unicode prvních 127 znaků je totoţných s ASCII důleţité z hlediska historie původní Unicode bylo plánováno na 65535 znaků (tj. 16 bitů v paměti) to přestalo stačit v roce 2003 (od roku 1996 se s tím počítalo) dnes je registrováno přes 100 tisíc znaků 44 D 61 a E1 á 161 š 00 44 D 00 61 a 00 E1 á 01 61 š 00 44 D 00 61 a 00 E1 á 01 61 š Problém mnohé aplikace (Java) počítají se 16bitovými znaky řešení skupina BMP (Basic Multilingual Plane) BMP obsahuje všechny znaky pouţívané v Evropě a Americe plus základní ideografická písma čínštiny, japonštiny a korejštiny (HAN písmo) zástupné páry (surrogate pairs) řeší znaky nad 16 bitů 44 D 61 a C3 A1 á C5 A1 š označování znaků U+01A5 10

Problémy při zápisu na disk máme jednu znakovou sadu, ale protoţe znak přesahuje rozsah jednoho bajtu, pouţívá se více způsobů zápisů na disk (kódovacích schémat) Problém pořadí bajtů ukládáme-li do paměti (do souboru) vícebajtové entity, je třeba rozlišovat pořadí bajtů A = 0041 little-endian LE (vyšší řády na vyšší adrese) 41 00 big-endian BE (vyšší řády na niţší adrese) 00 41 toto platí i pro např. čtyřbajtové entity 00 00 00 41 či 41 00 00 00 způsob ukládání little- nebo big-endian závisí na platformě (Windows LE), procesoru (Intel LE, Motorola BE), programovacím jazyce (Java vţdy BE), aplikaci,... proč to potřebujeme? většina současných souborových systémů pracuje s bajty pro správnou serializaci znaků do bajtového proudu 11

Problém kódovacích schémat UCS-2, UTF-16BE 00 44 D 00 61 a 00 E1 á 01 61 š 00 44 D 00 61 a 00 E1 á 01 61 š UTF-8 44 D 61 a C3 A1 á C5 A1 š UTF-16LE 44 00 D 61 00 a E1 00 á 61 01 š tři základní UTF (Unicode Transformation Format) UCS-2 je kódování z ISO 10646 další kódování (méně pouţívaná) UTF-16 UTF-32 UTF-32BE UTF-32LE UCS-4 12

Problém značky bajtového pořadí vyuţívá se pro identifikaci pořadí bajtů BE nebo LE initial byte order mark (BOM) je umístěna na samém začátku souboru pro tento účel definuje Unicode dva kódové body U+FEFF = ZERO WIDTH NO-BREAK SPACE (byte order mark) (pevná mezera nulové délky) U+FFFE = not a character code pro UTF-16 pro BE má tvar FE FF a pro LE pak FF FE je-li BOM načtena správně, pak se pevná mezera nulové délky ze své podstaty nemůţe zobrazit pouţívá se u UTF-16 (ne u UTF-16BE nebo UTF-16LE) můţe se pouţívat u UTF-8 BOM má nyní významnou (vedlejší) funkci určení pouţitého kódování 13

UTF-8 bylo vytvořeno proto, aby se znaky Unicode daly zakódovat posloupností bajtů, protoţe s bajty umí pracovat kaţdá aplikace a kaţdý souborový systém je to obecně rozšířený a přijímaný formát často se UTF-8 pokládá za Unicode výhody pro texty vyuţívající jen znaky anglické abecedy je UTF-8 totoţná s US-ASCII vyuţívá se jen jeden bajt na jeden znak s US-ASCII umí pracovat kaţdá aplikace pro akcentované znaky se vyuţívají dva bajty 44 D 61 a C3 A1 á C5 A1 š základní nevýhoda UTF-8 znaky nemají stejnou délku, tzn. není moţné skočit přímo na určitý znak ( přeskoč prvních 20 znaků ) pravděpodobnost omylu (povaţování poloviny znaku za celý znak) je omezena principem kódovacího schématu UTF-8 je kódování, které se nejsnáze rozpozná zobrazíme dokument běţným editorem a pokud místo kaţdého akcentovaného znaku vidíme dva nesmyslné znaky, je to UTF-8 14

UTF-8 a BOM BOM není nezbytný určovat bajtové pořadí zde nemá smysl v současné době je mnoha aplikacemi BOM v UTF-8 pouţíván jako označení formátu dokumentu BOM má tvar EF BB BF opět na samém začátku souboru tyto tři bajty jsou editorem/prohlíţečem pouţity k detekci kódování dokumentu a nezobrazují se Problém některé aplikace mají s BOM v UTF-8 potíţ při neznalosti principu je těţké problém odhalit, protoţe při otevření souboru BOM neexistuje odstranění BOM je obtíţné SciTE 15

Zápis akcentů pomocí US-ASCII princip akcentované znaky se zapíší opisem pomocí neakcentovaných dva základní způsoby slovní popis á číslo kódového bodu š nebo š (většinou Unicode) nebo =E1 (e-mail) nebo %E1 (URL) (většinou ISO-8859-2) moţné jsou i další způsoby BASE 64 16