Textový soubor
Textový soubor (označovaný zkratkou txt) je soubor pro uchovávání prostého elektronického textu. Text je zde reprezentován prostou sekvencí znaků, textový soubor není vnitřně strukturovaný. Prosté textové soubory se používají především tam, kde se předpokládá strojové zpracování textu, například pro ukládání zdrojového kódu počítačových jazyků, nebo zdrojového kódu pro webové stránky. Například i editace Wikipedie probíhá v prostém textu.
Klasický textový soubor je psán ve znakové sadě ASCII, kde jeden byte odpovídá jednomu tisknutelnému znaku. V běžném textovém souboru se vyskytují pouze následující tři netisknutelné znaky:
- mezera
- tabulátor
- odřádkování: (CR, LF, nebo sekvence CR-LF)
Pro netisknutelný znak se užívá anglický termín „whitespace“ (doslova bílá mezera). V textovém souboru by se neměl nikdy vyskytovat znak s kódem nula (NULL), protože mnohé počítačové jazyky jej vnitřně používají pro ukončování řetězců, takže by způsoboval problémy při zpracování textu.
[editovat] Rozdíly v textových souborech
Různé operační systémy předpokládají odlišné formátování zakončení řádku. Operační systémy Microsoftu (Windows, DOS) předpokládají řádek zakončený sekvencí znaků CR, LF (carriage return, linefeed), unixové operační systémy předpokládají řádek zakončený znakem LF (linefeed), zatímco operační systémy firmy Apple předpokládají řádek zakončený znakem CR (carriage return). I když je to vcelku drobná nepříjemnost, kterou inteligentně napsaný software může snadno tolerovat, způsobuje vzhledem k nesmiřitelnosti architektů operačních systémů nepříjemné problémy s kompatibilitou.
[editovat] Unicode
Protože doby, kdy byl všechen software a hardware vyvíjen v anglosaské nebo aspoň křesťanské na latinku nebo cyrilici vázané kulturní oblasti jsou nenávratně pryč, textové soubory pomalu, ale jistě přecházejí na celosvětové kódování unicode, které umožňuje zakódovat všechny v současnosti běžně používané znaky, včetně znaků čínské (japonské, korejské) znakové řeči a jiných orientálních skriptů (indické skripty jako sanskrt, dévangárí, tibetské skripty atp.).
Vzhledem k velké různosti skriptů v současnosti existují minimálně dva hlavní způsoby kódování unicode, konkrétně jde o UTF-8, které je de-facto rozšířením ASCII (texty obsahující pouze 7bitové ASCII kódy zůstávají stejné) a čínské kódování GB 18030, které mapuje UNICODE odlišným způsobem.
UNICODE však přináší nejednoznačnou reprezentaci textu, kdy například český znak 'ř' (r s háčkem) může být uložen jako znak r a znak háček (není zcela jasné v jakém pořadí), nebo je pro něj v kódu vyhražen znak 'ř'.
Lze těžko předpokládat, že by běžné programy mohly zpracovávat unicode v celé jeho šíři s respektováním všech typografických komplikací spojených s exotickými skripty. Složitější kódování ovšem také znamená další zdroj nekompatibility při přenosu textových souborů (počínaje tím, že Windows dávají na začátek unikódového textového souboru kódovaného znak BOM aby bylo možné snadněji identifikovat kódování souboru, což Unix nemusí akceptovat).
Koneckonců, většina řídících znaků staršího a nesrovnatelně jednoduššího kódování ASCII se běžně nepoužívá…