Uživatelské nástroje

Nástroje pro tento web


diakritika_v_zip_archivech

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

diakritika_v_zip_archivech [2013/03/21 09:49] (aktuální)
mat vytvořeno
Řádek 1: Řádek 1:
 +====== Diakritika v ZIP archivech ======
  
 +===== Popis problému =====
 +
 +Formát ZIP má jednu zásadní nevýhodu - původně nikdo nepočítal s tím, že by se v něm někam ukládala informace, v jakém kódování jsou názvy souborů. Pokud jsou názvy těchto souborů jen v ASCII (rozuměj: bez diakritiky),​ obvykle žádný problém nenastane. Problém ale je, když v názvech souborů jsou obsažené znaky například s českou diakritikou (ščř...). A abych byl ještě přesnější - když je takový archiv vytvořen na Windows a následně se snažíte z něj soubory dostat třeba na Linuxu.
 +
 +Na Linuxu existuje několik nástrojů pro práci s archivy ve formátu ZIP. Asi nejrozšířenějším je program [[http://​www.info-zip.org/​UnZip.html|unzip]]. Ten by sice v poslední verzi (6.0) měl již podporovat kódování UTF-8, ale neřeší to problém ZIP archivů vytvořených pod Windows nějakým jiným nástrojem. V nich jsou obvykle názvy souborů v kódování CP852. Jenže informace o tom, že jsou zrovna v tomto kódování,​ není v samotném archivu nikde uložena.
 +
 +===== Řešení =====
 +
 +Nejprve je třeba archiv nějakým způsobem rozbalit. Na toto se osvědčil program [[http://​www.7-zip.org/​|7zip]]. Pozor ale na nastavení **locale**, zdá se, že pokud je nastavené na češtinu, při rozbalení 7zip s názvy souborů ještě něco provádí. Tomu se dá zabránit tak, že se spustí bez nastaveného locale:
 +
 +<​code>​LANG="​C"​ 7z x nazev_archivu.zip</​code>​
 +
 +Pak už stačí jen na všechny rozbalené soubory spustit program **convmv** pro převod z kódování CP852 do UTF-8:
 +
 +<​code>​convmv --notest -r -f cp852 -t utf8 *</​code>​
diakritika_v_zip_archivech.txt · Poslední úprava: 2013/03/21 09:49 autor: mat