sudofeed

dev · · 21:07 · 2 min de citit

Previzualizare Python 3.15: UTF-8 devine implicit pentru codificarea textului

Python 3.15 va face din UTF-8 codificarea implicită pentru text în operațiunile cu fișiere, rezolvând inconsecvențele între platforme care anterior duceau la mojibake sau erori. Această schimbare, determinată de PEP 686, asigură că deschiderea fișierelor fără specificarea unei codificări va folosi acum consistent UTF-8 pe toate sistemele de operare, inclusiv Windows.

Python 3.15 introduce o schimbare semnificativă prin transformarea UTF-8 în codificarea implicită pentru operațiunile de intrare/ieșire (I/O) de text, o măsură menită să elimine inconsecvențele între platforme. Anterior, Python se baza pe setările de localizare ale sistemului pentru codificarea textului atunci când nu era specificată nicio codificare explicită, ceea ce ducea la probleme precum mojibake (text neinteligibil) sau `UnicodeDecodeError` pe platforme precum Windows, care adesea foloseau implicit codificări moștenite, cum ar fi cp1252. Această actualizare asigură că un apel simplu `open('fișier.txt')` va decoda acum folosind UTF-8 universal, oferind o experiență mai predictibilă și robustă pentru dezvoltatori.

Schimbarea tehnică este formalizată prin PEP 686 și afectează diverse funcții și module încorporate care gestionează textul, inclusiv metodele `pathlib`, `gzip.open`, `bz2.open`, `lzma.open` și apelurile `subprocess` cu `text=True`. Schimbarea înseamnă că codul scris pentru Python 3.15 se va comporta identic în ceea ce privește codificarea textului pe Windows, Linux și macOS, cu condiția să nu fie specificată nicio codificare explicită. Instrumente precum `flake8-encodings` și flag-ul `-X warn_default_encoding` sunt disponibile pentru a ajuta la identificarea codului care se bazează pe vechiul comportament implicit, facilitând migrarea și asigurând compatibilitatea.

Această standardizare aliniază Python cu standardul de facto al industriei pentru codificarea textului, care este deja prevalent în fișierele sursă, JSON, standardele web și alte limbaje de programare moderne precum Go, Rust și Java. Prin adoptarea UTF-8 ca implicit, Python 3.15 simplifică dezvoltarea, reduce bug-urile potențiale legate de codificarea caracterelor și îmbunătățește portabilitatea aplicațiilor Python. Dezvoltatorii sunt încurajați să specifice explicit codificările în codul lor pentru claritate maximă și compatibilitate retroactivă, dar noul implicit îmbunătățește semnificativ experiența "out-of-the-box".

$ sursa --originală

realpython.com

Rezumat realizat de Sudofeed pe baza articolului original. Drepturile asupra conținutului aparțin sursei originale.

citește originalul ↗