IConv a hromadná změna kódování u souborů
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

IConv a hromadná změna kódování u souborůIConv a hromadná změna kódování u souborů

 

IConv a hromadná změna kódování u souborů

Google       Google       12. 5. 2009       16 864×

Stručný návod, jak rychle změnit kódování souborů pomocí nástroje IConv.

Reklama
Reklama

Když jsem přebíral jeden rozsáhlejší web, byl jsem nucen ho celý překódovat z UTF-8. Jednalo se o několik tisíc souborů, takže ruční změna byla vyloučena. Naštěstí to jde udělat velice snadno pomocí shellu a prográmku IConv. Stačí si vytvořit několikařádkový shell skript a celý převod je potom otázkou několika sekund.

IConv

IConv je velmi jednoduchý program. Přesný popis použití získáte pomocí známého příkazu man iconv. Na začátku je důležité zjistit, jestli program zná potřebné kódování. K tomu slouží parametr -l. Jelikož je často v systému zavedeno velké množství znakových sad, je vhodné tento výpis stránkovat:

iconv -l | more

Poslední dva parametry, které nás budou nyní zajímat, určují vstupní a výstupní kódování. Vstupní kódování zadáme pomocí parametru -f (from) a výstupní pomocí parametru -t (to). Na konci příkazu musíme samozřejmě uvést jméno souboru, který chceme převádět:

iconv -f windows-1250 -t UTF-8 test.txt

IConv posílá výstup na standardní výstup systému, proto je užitečné ho přesměrovat do nového souboru:

iconv -f windows-1250 -t UTF-8 test.txt > test-conv.txt

Vlastní převod

Konverze velkého množství souborů se dá realizovat jednoduchým shellovým skriptem:

for F in $(find $1 -iname "*.html")
do
        if [ -f $F ]; then
                iconv -f windows-1250 -t utf-8 $F > ${F}1
                mv ${F}1 $F
        fi
done

První řádek je inicializace cyklu, který rekurzivně projde zadaný adresář (proměnná $1) a jeho podadresáře a postupně vybírá soubory s koncovkou html (samozřejmě lze zvolit jakoukoliv jinou). Uvnitř cyklu nejprve ověříme, že se jedná skutečně o soubor a ne o adresář, a provedeme konverzi. Konvertovaný soubor uložíme do dočasného souboru, kterým v dalším kroku přepíšeme původní soubor. Zde jsem pro jednoduchost nazval dočasný soubor stejně jako původní, pouze jsem na konec přidal znak 1. V reálu je lepší použít nějaký složitější řetězec, aby se vyloučilo přepsání jiného souboru, příp. ukládat nové soubory do jiného adresáře.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Zdeněk MoravecAutor se pohybuje v oblasti vývoje nových materiálů. Mezi jeho koníčky patří tvorba webových aplikací, programování v jazycích Java, .NET (C#), Perl, elektronika a sport (běh). Hojně využívá sázecí systém LaTeX.
Web     Facebook    

Nové články

Obrázek ke článku Mobilní datový provoz vzroste sedmkrát.

Mobilní datový provoz vzroste sedmkrát.

Už v roce 2021 bude mít více obyvatel zeměkoule mobilní telefon (5,5 miliardy) než bankovní účet (5,4 miliardy), tekoucí vodu (5,3 miliardy) nebo pevnou telefonní linku (2,9 miliardy). Vyplývá to z analytické studie Cisco Visual Networking Index (VNI) Global Mobile Data Traffic Forecast (2016 to 2021). Analytici také předpovídají, že se tento výrazný růst, spolu s rozmachem chytrých telefonů a připojení do internetu věcí promítne i do celkového objemu přenesených mobilních dat. Studie říká, že do roku 2021 vzroste sedminásobně, k čemuž přispěje i zvyšování přenosové rychlosti sítí a nárůst sledování videa na mobilních zařízeních.

Reklama
Reklama
Reklama autora

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý