CURS ONLINE INTERACTIV

Python 3

PENTRU ÎNCEPĂTORI


"Primul volum Python în română care pur și simplu m-a uimit. Foarte bine explicat și ușor de înțeles." (Alexandru Cosmin)

"Cea mai bună carte de Python din RO." (Iulian Geană)

"Livrare promptă! M-am pus pe treabă!" (Emil Ilie)

TOATE RECENZIILE
Despre standardul UTF-8 și limbajul Python

Ce este UTF-8?

UTF-8 sau Unicode Transformation Format 8-bit, este o metodă ingenioasă de a reprezenta caracterele din toate limbile lumii folosind numere și biți. Înainte de UTF-8, programatorii se confruntau cu provocarea de a gestiona diferite seturi de caractere pentru fiecare limbă. Dar acum, putem să punem împreună toate aceste caractere diverse într-o singură bucată de cod.



De ce este Important? Imaginați-vă că dezvoltați o aplicație care să fie utilizată în întreaga lume. Oamenii din diverse țări vor dori să folosească aplicația voastră și să introducă text în limba lor maternă. UTF-8 vă permite să faceți acest lucru fără a vă face griji că textul introdus va fi interpretat greșit sau că unele caractere nu vor putea fi afișate corect.

Cum lucrăm cu UTF-8 în Python?

În Python, lucrurile sunt surprinzător de simple. Atunci când lucrați cu șiruri de caractere, Python vă permite să folosiți caracterele UTF-8 direct. De exemplu, puteți defini un șir de caractere cu litere din diverse limbi, și Python le va trata fără probleme:

text = "Привет, Hello, 你好!"
print(text)


Acest cod va afișa corect toate caracterele, indiferent de limba din care provin. Chiar și acest fișier HTML respectă acest standard, deci caracterele au putut fi afișate imediat în pagină.

De asemenea, puteți să vă asigurați că fișierele dvs. Python sunt în formatul UTF-8 prin adăugarea unui comentariu la începutul fișierului:

# -*- coding: utf-8 -*-

Dacă dorim să introducem în Python simbolul de drepturi de autor (©) folosind codul său Unicode, vom tasta următoarele:

sir = '\u00A9'
print(sir)


Mai sus am creat un șir de caractere folosind codul Unicode "\u00A9". Deoarece șirul de caractere Python utilizează codificarea UTF-8 în mod implicit, afișarea valorii lui sir se schimbă automat în mod corespunzător în simbolul Unicode. Observați că secvența "\u" de la începutul unui punct de cod este necesară. Fără ea, Python nu va putea converti punctul de cod.

Lista caracterelor UTF-8
https://home.unicode.org/

Mai multe detalii

UTF-8 este un standard de codificare a caracterelor folosit în informatică pentru a reprezenta textul în limbajele umane. Acest standard are rolul de a asocia fiecărui caracter (literă, cifră, semn de punctuație, simbol etc.) cu o secvență unică de biți (0 și 1), permițând astfel calculatoarelor să înțeleagă și să afișeze diverse limbaje și simboluri din întreaga lume.

UTF-8 utilizează o schemă de codificare variabilă, ceea ce înseamnă că caracterele sunt reprezentate folosind un număr variabil de biți, în funcție de caracter. Caracterele comune (precum literele din alfabetul englez) sunt reprezentate folosind un număr mai mic de biți, în timp ce caracterele mai rare sau mai complexe (precum literele din limbi cu scriere non-latină) sunt reprezentate folosind un număr mai mare de biți. Acest lucru face ca UTF-8 să fie eficient din punct de vedere al spațiului și să poată reprezenta o gamă largă de caractere.

De exemplu, să luăm litera "A". În codul Unicode, aceasta are un punct de cod numeric, în acest caz, "U+0041". În reprezentarea UTF-8, această literă este codificată cu secvența de biți 01000001. Acest sistem de reprezentare permite unificarea modului în care computerele interpretează și afișează literele, chiar dacă ele provin din diferite limbi.

Un alt punct important este că UTF-8 nu se limitează la litere și caractere alfabetice. El poate reprezenta simboluri matematice, emoticoane, semne de punctuație, logotipuri și multe altele. Să luăm exemplul emoji-ului Milky Way ("🌌"), care în codul Unicode este "U+1F604". În UTF-8, acesta este codificat cu secvența de biți 11110000 10011111 10001100 10001100.

De-a lungul anilor, adoptarea largă a UTF-8 în domeniul programării și pe internet a făcut posibilă comunicarea și colaborarea globală fără a mai fi nevoie de conversii și adaptări complicate între diferite seturi de caractere. Așadar, în lumea digitală de astăzi, cunoștințele despre UTF-8 sunt vitale pentru a crea aplicații și site-uri web interculturale și interoperabile.

Codificarea și decodificarea șirurilor

Limbajul de programare Python oferă funcții implicite pentru codificarea și decodificarea șirurilor de caractere. Spre exemplu, funcția encode() convertește (codifică) un șir de caractere într-un șir de octeți:

emoji = '😅'
print(emoji.encode('utf-8'))


Rezultatul în consolă este următorul:



Să detaliem puțin. Expresia afișată reprezintă o secvență de octeți în formatul codificării UTF-8, care este o modalitate comună de a reprezenta caractere Unicode în formă binară:

\xf0 (în binar, "11110000")
Acest octet face parte dintr-o secvență de mai mulți octeți care reprezintă un caracter Unicode. Este un octet de început care indică că urmează o secvență mai lungă pentru reprezentarea caracterului.
\x9f ("10011111")
Al doilea octet din secvența și face parte din codul Unicode al caracterului.
\x98 ("10011000")
Al treilea octet din secvență și face parte tot din codul Unicode al caracterului.
\x85 ("10000101")
Ultimul octet din secvență și face parte, de asemenea, din codul Unicode al caracterului.

Așadar, emojiul se poate scrie pe biți (4 octeți) astfel: "11110000 10011111 10011000 10000101".

Prefixul "b" din expresie indică faptul că această secvență de caractere este un șir de octeți (8 biți).

Vezi mai multe caractere exprimate astfel [aici].

Similar, decodificarea se realizează cu ajutorul funcției decode():

binar = b'\xf0\x9f\x8c\x8d'
print(binar.decode('utf-8'))




În consolă a fost afișat caracterul corespunzător (emoji-ul "Earth Globe Europe-Africa").
Hai și tu în clubul nostru!
Python 3 e super tare!
 arrow_back   home   perm_identity   list   arrow_upward