Až budete chtít někdy dávkově konvertovat kódování souborů …
Čas od času řeším problém jak hromadně zkonvertovat sadu souborů z kódování A do kódování B, popřípadě jak ze sady souboru odstranit UTF-8 BOM. Vždy jsem na hledání nějakého jednorázového vehementu strávil plno času, především proto, že to obvykle nefungovalo tak úplně jak bych potřeboval. Na odstranění BOMu, jsem navíc nenašel vůbec nic. Nakonec mi došla trpělivost a za 20 minut jsem si spíchnul utilitku, kterou jsem si problém jednou provždy (doufám) vyřešil. A pak že je Java na takovéhle utilitky nešikovná (vím že v Groovy bych to měl na polovině řádku, ale ještě nejsem úplně Groovy ready) …
Utilitka je směšně jednoduchá – před použitím zatřepat a na příkazový řádek napsat:
Tímhle příkazem zkonvertujete všechny soubory s příponami java, txt, properties, xml z adresáře /www/vstupni z kódování UTF-8 do kódování windows-1250 a výsledek se uloží do složky /tmp/vystupni. Pro odstranění BOM stačí -m convert zaměnit za -m removeBOM.
Nehledejte v utilitce žádnou inženýrský přístup – jde jen o jednorázovku, která má plnit jednoduchý účel. Třeba se vám ale bude taky hodit …
Convertor [JAR 150kB] ke stažení
Zdrovové soubory [ZIP 4kB] ke stažení
Application for batch file encoding and UTF-8 BOM removal
Many times I had a need for batch file encoding conversion or UTF-8 BOM removal. I repeatedly searched for utility appliacations that would do this for me, but usually lost a lot of time trying them and finally uninstall them dissapointed. The problem is so dumb simple, that I couldn’t resist and wrote my own in 20 minutes, doing the right thing I need. Feel free to use it or extend it, if you want.
Usage is simple – you would need Java 1.5 installed:
Thic command will convert all files with extension of java, txt, properties and xml from input directory /www/input into output directory /tmp/output from encoding utf-8 into windows-1250. If you need to batch remove UTF-8 BOM, just change the mode to -m removeBOM.
Download Convertor [JAR 150kB]
Download source files [ZIP 4kB]





(5 hlasů, průměrně: 3.40 z 5)
na windows se mi osvědčilo tohle http://www.sisulizer.com/kaboom/index.shtml
Tak ten vypadá rozhodně líp než většina co jsem zkoušel. No internet je holt moře, a tak se v něm dá lehce utopit.
Ahoj, pro inspiraci jsem si chtěl stáhnout zdrojáky, ale bohužel nemám na to právo:-(
You don’t have permission to access /EncodingConvertor/ on this server.
Chybička se vloudila, odkazy opraveny, nyní možno stáhnout.
Ak už má človek nainštalovanú javu, tak má aj nástroj native2ascii. S ním je možné spraviť konverziu bez inštalácie akýchkoľvek knižníc tretích strán. Ja som používal tento BAT
1 rem Windows-1250 to UTF-8.
2 copy “%1″ “%1.1250″
3 %JAVA_HOME%\bin\native2ascii.exe -J-Xmx64M -encoding windows-1250 “%1.1250″ | %JAVA_HOME%\bin\native2ascii.exe -reverse -encoding UTF-8 > “%1″
4 del “%1.1250″
Riadok 2 urobil pracovnú kópiu súboru ktorý chcem konvertovať.
Riadok 3 urobí dve konverzie – z pôvodného formátu do java-encoding a z neho do požadovaného formátu, ktorý prepíše pôvodný súbor.
Riadok 4 vymaže pracovnú verziu (v java-encoding formáte).
Tento baťák stačí obaliť baťákom, ktorý tam láduje súbory z nejakých adresárov a to je všetko.
Nevim jak s BOM, ale na prevod kodovani se mi osvedcil iconv. Lze i na windows (pouzivam cygwin). Trivialni priklad::
myconv.sh:
#!/bin/bash
mv $1 %1.tmp
iconv -f UTF-8 -t CP1250 $1.tmp > $1
rm $1.tmp
nasledne se zavola na potrebne soubory napr. pres find:
find ./ -type f – name “*.java” -o – name “*.txt” -exec myconv.sh \{\} \;