Text simplu

Pentru text necriptat, vedeți text clar.
Text din The Human Side of Animals de Royal Dixon, afișat cu comanda cat într-o fereastră xterm

În informatică prin text simplu se înțelege un tip de date (de exemplu, conținutul unui fișier text) care conține doar caractere ale materialului lizibil, dar nu și reprezentarea sa grafică sau alte obiecte (numere în virgulă mobilă, imagini etc.). Poate conține, de asemenea, caractere „ blanc”, care pot realiza o aranjare simplă a textului, cum ar fi spațieri, întreruperi sau tabulări (deși caracterele „tab” pot „însemna” multe lucruri diferite, deci nu sunt „simple”). Textul simplu este diferit de textul formatat, unde sunt incluse informații despre stil; de textul structurat, unde sunt identificate părți structurale ale documentului, cum ar fi paragrafe, secțiuni și altele asemenea; și de fișierele binare, în care unele porțiuni trebuie interpretate ca obiecte binare (numere întregi codificate, numere reale, imagini etc.).

Uneori termenul este folosit cu un sens mai slab, însemnând fișiere care conțin numai conținut „lizibil” (sau doar fișiere care nu conțin nimic interesant pentru cel care se exprimă așa). De exemplu, acest lucru ar putea exclude indicațiile privind fonturile sau aspectul (cum ar fi elemente de marcare, markdown sau chiar tabulări); caractere precum ghilimele, spații insecabile, linii de despărțire în silabe, liniuțe, ligaturi sau alte lucruri.

În principiu un text simplu poate fi codat în orice cod, dar de obicei termenul se referă la textele codate cu codul ASCII. Alte codări comune se bazează pe Unicode, versiunile UTF-8 și UTF-16.

Termenul de „text simplu” este folosit uneori doar pentru a exclude fișierele binare: acelea în care cel puțin unele părți ale fișierului nu pot fi interpretate corect prin simpla decodare a caracterelor. De exemplu, un fișier sau șir format din „Hello” (în orice codare), urmat de 4 octeți care conțin un număr întreg în binar care nu sunt caractere, este, chiar și în cele mai simple cazuri, un fișier binar, nu text simplu. Altfel spus, recodarea unui fișier de text simplu într-o altă codare a caracterelor, utilizând alt cod, complet diferit pentru a reprezenta caracterele nu schimbă sensul conținutului (cât timp se cunoaște codificarea folosită), însă pentru fișierele binare o astfel de conversie schimbă semnificația cel puțin a unor părți ale fișierului.

Text simplu și text formatat

[modificare | modificare sursă]

Fișierele care conțin și marcări sau metadate sunt în general considerate text simplu cât timp marcajul este într-o formă direct lizibilă de om (ca în HTML, XML etc.). După cum susțin Coombs, Renear și DeRose,[1] punctuația este ea însăși un marcaj și nimeni nu consideră că ea ar face ca textul să nu fie unul simplu.

Utilizarea textului simplu, mai degrabă decât a fișierelor binare, permite fișierelor să supraviețuiască mult mai bine „în natură”, fiind în mare parte imune la incompatibilitățile arhitecturii calculatoarelor. De exemplu, pot fi evitate toate problemele din indian (în engleză endian).

Conform standardului Unicode,

  • Text simplu este o secvență pură de coduri de caractere; textul simplu necodat este deci o secvență de coduri de caractere Unicode.”
  • Textul formatat (în engleză rich text) este orice reprezentare de text care conține text simplu completat de informații precum un identificatori de limbă, dimensiunea fontului, culoare sau legături hipertext.[2]

Prin urmare, reprezentări precum SGML, RTF, HTML, XML, wiki markup și TeX, precum și aproape toate fișierele cu cod sursă în limbajele de programare sunt considerate text simplu. Conținutul efectiv este irelevant pentru a caracteriza dacă un fișier conține text simplu sau nu. De exemplu, un fișier SVG poate genera desene sau chiar grafică bitmap, dar este, totuși, text simplu.

Conform standardului Unicode, textul simplu are două proprietăți principale în comparație cu ceea ce se numește uneori text „bogat” (sau formatat):

  • „Textul simplu este fluxul de conținut subiacent căruia i se poate aplica formatarea.”
  • „Textul simplu este public, standardizat și universal citibil.”[2]

Astăzi, scopul utilizării textului simplu este în primul rând independența față de programele care necesită codarea sau formatarea lor specială. Fișierele cu text simplu pot fi deschise, citite și editate cu editoare de texte și utilitare omniprezente. Multe alte programe de calculator sunt capabile să proceseze sau să creeze text simplu, cum ar fi nenumărate programe în DOS, Windows, Mac OS clasic și Unix, precum și unele browsere web (Lynx și Line Mode Browser), precum și diverse cititoare de texte elacronice. În acest sens, este cel mai bun format pentru stocarea rezistentă a cunoștințelor, mai bine decât în binar[3].

Este folosit în interfețele de linie de comandă pentru a da comenzi, răspunsul fiind de obicei tot în text simplu.

Fișierele de text simplu sunt folosite aproape exclusiv în programare; un fișier de cod sursă care conține instrucțiuni într-un limbaj de programare este aproape întotdeauna un fișier de text simplu. Textul simplu este, de asemenea, utilizat în mod obișnuit în fișierele de configurare, care conțin setările dorite la pornirea unui program. Un comentariu conține în general doar text simplu destinat citirii de către oameni.

Textul simplu este utilizat mult în e-mailuri.

Codarea caracterelor

[modificare | modificare sursă]

Înainte de începutul anilor 1960, calculatoarele erau folosite în principal pentru calcule numerice, nu pentru text, iar memoria era extrem de scumpă. Se alocau adesea doar 6 biți pentru fiecare caracter, permițând doar 64 de caractere — atribuirea codurilor pentru A–Z, a–z și 0–9 lăsa doar 2 coduri, insuficient. Majoritatea producătorilor de calculatoare au optat să nu accepte literele mici. Astfel, primele aplicații de text, precum Index Thomisticus al lui Roberto Busa, Brown Corpus, și altele au trebuit să recurgă la convenții precum introducerea unui asterisc înainte de cele ce trebuiau să fie majuscule.

Fred Brooks de la IBM a susținut reprezentarea caracterelor pe 8 biți (octet, byte), pentru a permite prelucrarea de texte. Deși IBM a folosit codul EBCDIC, cea mai mare parte a textului de atunci a ajuns să fie codificată în ASCII, alocând valorile de la 0 la 31 pentru caracterele de control (care nu sunt tipărite) și valorile de la 32 la 127 pentru caractere grafice precum litere, cifre și punctuație. Majoritatea calculatoarelor au stocat caracterele pe 8 biți, nu pe 7, ignorând bitul rămas sau folosindu-l ca sumă de control.

ASCII a fost de mare ajutor, dar nu a reușit să acopere necesitățile lingvistice internaționale. Semnul dolarului („$”) nu era la fel de util în Anglia, iar caracterele cu accente folosite în spaniolă, franceză, germană, portugheză și multe alte limbi nu erau în întregime disponibile în ASCII (ca să nu mai vorbim de caracterele folosite în greacă, rusă și majoritatea limbilor estice). Multe persoane, companii și țări au definit caractere suplimentare în funcție de necesar — deseori reatribuind caractere de control sau folosind valori cuprinse între 128 și 255. Utilizarea valorilor peste 128 este în conflict cu utilizarea bitului 8 ca sumă de control, dar utilizarea sumelor de control treptat a fost abandonată.

Aceste caractere suplimentare au fost codificate diferit în diferite țări, făcând textele imposibil de decodat fără a ști codul inițial. De exemplu, un browser ar putea afișa ¬A în loc de `. Organizația Internațională de Standardizare (ISO) a elaborat prin ISO 8859 mai multe pagini de cod pentru diferite limbi. Prima dintre acestea (ISO 8859-1) este, de asemenea, cunoscută sub numele de „Latin-1” și acoperă nevoile majorității (nu ale tuturor, deoarece nu era suficient loc pentru toate caracterele) limbilor europene care utilizează caractere bazate pe alfabetul latin. ISO 2022 a stabilit apoi convenții pentru „comutarea” între diferite seturi de caractere în timpul afișării conținutului fișierelor. Multe alte organizații au elaborat variante și, timp de mulți ani, sistemele Windows și Macintosh au folosit variante incompatibile.

Codarea textului a devenit din ce în ce mai complexă, ducând la eforturile ISO și ale Unicode Consortium de a dezvolta o codare a caracterelor unică, care să acopere toate limbile cunoscute (sau cel puțin toate cunoscute în prezent). Unicode permite în prezent 1 114 112 coduri și atribuie coduri care acoperă aproape toate sistemele moderne de scriere a textului, precum și multe sisteme istorice, precum și pentru multe caractere nelingvistice, cum ar fi caracterele dingbat ale imprimantei, simboluri matematice etc.

Un text este considerat text simplu indiferent de codarea acestuia. Pentru a înțelege sau interpreta corect, destinatarul trebuie să știe ce codare a fost folosită, însă nu trebuie să știe nimic despre arhitectura calculatorului sau despre programul care a creat textul.

Cel mai comun mod de a declara în mod explicit codificarea specifică a textului simplu este cu un tip MIME. Pentru e-mail și HTTP, tipul MIME implicit este „text/plain” — text simplu fără marcaje. Un alt tip MIME obișnuit este „application/json” — text simplu reprezentat folosind codarea caracterelor UTF-8 cu marcaj JSON.

Când se primește un document fără nicio indicație explicită a codării caracterelor, unele aplicații folosesc detectarea setului de caractere pentru a încerca să ghicească ce codare a fost folosită.

Coduri de control

[modificare | modificare sursă]

ASCII rezervă primele 32 de coduri (codurile 0–3110) pentru caracterele de control cunoscute sub numele de „setul C0”: coduri destinate inițial să nu reprezinte informații de tipărit, ci să controleze imprimantele) care utilizează ASCII sau pentru a furniza metadate despre fluxurile de date, cum ar fi cele stocate pe bandă magnetică. Acestea includ caractere comune, cum ar fi linie nouă și tabulatorul.

În seturile de caractere de 8 biți, cum ar fi Latin-1 și celelalte seturi din ISO 8859, primele 32 de caractere ale „jumătății superioare” (de la 128 la 159) sunt, de asemenea, coduri de control, cunoscute sub numele de „setul C1”. Sunt rareori folosite direct; când apar în documente care aparent se află într-o codificare ISO 8859, aceste coduri se referă, în general, la caracterele din acea poziție într-o codare proprietară, specifică sistemului, cum ar fi Windows-1252 sau Mac OS Roman, care utilizează aceste coduri pentru a furniza caractere grafice suplimentare.

Unicode definește caractere de control suplimentare, inclusiv caractere de schimbare a direcției scrisului (text bidirecțional, caractere de suprascriere (utilizate pentru a marca în mod explicit scrierea de la dreapta la stânga în scrierea de la stânga la dreapta și invers) și selectoare de variante pentru a selecta forme alternative de ideograme CJK, emoji și alte caractere.

  1. ^ en Coombs, James H.; Renear, Allen H.; DeRose, Steven J. (noiembrie 1987). „Markup systems and the future of scholarly text processing”. Communications of the ACM. 30 (11): 933–947. CiteSeerX 10.1.1.515.5618Accesibil gratuit. doi:10.1145/32206.32209. 
  2. ^ a b en The Unicode Standard, version 6.1, General Structure, pages 14–15
  3. ^ en Andrew Hunt, David Thomas, "The Pragmatic Programmer", 1999, Chapter 14: "The Power of Plain Text", p. 73