Codarea numelor de fișiere în arhive zip

Destul de des atunci când se deschid arhivele sub Linux conținând fișiere și directoare cu nume chirilic (și în general orice non-ASCII), se constată că numele fișierelor din ele sunt în codificare greșită. Dacă decomprimați o astfel de arhivă pe un disc, fișierele de pe disc pot fi obținute cu nume greu de citit.







Acest lucru se întâmplă deoarece numele de fișiere diferite sisteme de fișiere sunt stocate în codificări diferite, și chiar sisteme de operare lucra cu ei în diferite moduri, iar majoritatea formatelor de arhivă nu prevede charset specifice: ceea ce a fost în ambalaj, așa să fie. Pur și simplu pune, din motive istorice, codificarea în arhivele nume de fișiere domnește mizerie.

Problema apare cel mai adesea cu fișierele ZIP care sunt ambalate în Windows. De fapt, formate TAR, GZIP, BZIP2 și multe altele, de asemenea, care sunt supuse, dar ele sunt mai des pe Linux sau alte platforme-POSIX, iar acum există aproape întotdeauna una și aceeași codificare - UTF-8, astfel încât problema nu se produce.

Dacă aveți nevoie să despachetați o astfel de arhivă, atunci soluția este foarte simplă: trebuie să spuneți arhivatorului ce codifică numele fișierelor. Problema este că arhivele comune cu o interfață grafică nu au o astfel de opțiune, programul pentru linia de comandă este, de asemenea, de obicei prea (în cel mai bun caz este ascuns în documentație). Prin urmare, oferim sfaturi despre cum să procedăm.

În ceea ce privește codificarea însăși, ar trebui să așteptați fie UTF-16, fie CP1251, sau (rareori) CP866.

Adăugăm depozitul cu versiunea corectată a arhivatorilor:

Actualizăm depozitele și pachetele:

Apoi instalați următoarele pachete:

Acum numele fișierelor din arhive vor fi afișate în codarea corectă.







După reconstruirea zipului și dezarhivarea cu pavilionul USE natspec, totul funcționează singur. În suprapunerea rusxmms a amuserului, este disponibil un pachet p7zip cu un GUI pentru arhivatorul 7-Zip, care corectează și codarea. Pentru p7zip, trebuie să activați USC flags rcc, care este de asemenea utilizat în alte pachete ale acestei suprapuneri, de exemplu id3tag și mpg123.

Puteți împrumuta deparazitare decompress și libnatspec din proiectul RussianFedora:

Pentru Gnome 2 Editați

  1. Am pus fitilul-fermoar
  1. Creați un director /.ZIP
  1. Scriem scenariul:
  1. Faceți executabil și puneți, de exemplu, dacă gnome este în /.gnome2/nautilus-scripts
  1. Am atribuit să deschidem arhivele ZIP cu acest script

Cum să vă împachetați fișierele pentru a evita problemele de editare

Problemele nu vor fi, în cazul în care toate numele de fișiere și directoare din arhivă constau exclusiv din litere, cifre, spații și semne de punctuație de bază, cu excepția o bară oblică (/) - slash-uri în nume de fișiere sub Linux nu este permisă. Dacă arhiva este deschisă în Windows, există mai multe caractere interzise: <.>. :. dar nu sunt recomandate pentru Linux sub numele de fișiere, deoarece la linia de comandă toate aceste caractere au un înțeles special.

Și nici o problema cu 7z format (p7zip arhiva pentru Linux / POSIX, 7-Zip pentru Windows), sau sub Linux sau sub alte sisteme: arhivator cu pachetul codificați în mod automat toate numele de fișiere în UTF-8, și să le transcodes despachetare în codarea locală a sistemului. Formatul este complet gratuit și cu o bună compresie, deci este recomandat să-l utilizați.

De obicei, nu există probleme cu formatul popular RAR, deoarece acolo numele fișierelor sunt întotdeauna codate în UTF-16. Dar, în primul rând, este proprietate: arhiverele gratuite îl susțin mai mult sau mai puțin, dar cu unele versiuni ale formatului pe care nu le pot face față. În al doilea rând, există rapoarte despre faptul că unii arhivatori Linux folosesc încă codificare atunci când lucrează cu RAR. Se recomandă utilizarea 7z.

Trebuie remarcat faptul că programul zip de la Info-ZIP, utilizat în majoritatea distribuțiilor, de la versiunea 3.0 când se creează arhive, stochează simultan numele fișierelor în două codări: una care este și în UTF-8. O astfel de arhivă poate fi despachetată fără probleme, iar compatibilitatea cu versiunile mai vechi de arhive nu este încălcată. Dar acest lucru nu ajută deloc la despachetarea arhivelor create de alte programe. De fapt, chiar și specificația formatului ZIP include clauza că numele de fișiere ar trebui să fie codate fie în CP437 sau UTF-8, dar dezvoltatorii de arhivare ignoră adesea acest punct.







Articole similare

Trimiteți-le prietenilor: