IConv a hromadná změna kódování u souborů
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
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 256×

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 Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý