RemoveBOM – hromandé ostranění BOM hlaviček

BOM (Byte Order Mark) je Unicode znak sloužící k definování pořadí bytů v textovém souboru (proudu). UTF-8 reprezentuje BOM sekvencí bytů 0xEF, 0xBB, 0xBF. Textové editory nebo webové prohlížeče interpretující text jako ISO-8859-1 nebo CP1252 zobrazují BOM jako “ “. Standard Unicode povoloje, ale nevyžaduje BOM pro soubory v kódování UTF-8. Pořadí bytů nemá v kódování UTF-8 žádný význam a BOM slouží pouze pro identifikaci kódování UTF-8. Některé editory nebo interpreti kódu mají s BOM problém a interpretují ho jako znak. Například v PHP to způsobuje problém s nemožností odeslání hlaviček, jelikož už byl odeslám znak BOM. Z toho důvodu doporučuji znak BOM nepoužívat a protože ho některé editory používá defaultně a toho chování se nedá vypnout (např. Microsoft Notepad nebo Microsoft Visual C++) naprogramoval jsem malou utilitku, která BOM ze souborů hromadně odstraní.

GUI verze

GUI verze je dostupná pouze pro systém Microsoft Windows. Hlavičku BOM odstraňuje přetažením soubor(ů) nebo adresáře(ů) na seznam souborů zobrazený přes celé okno. Pokud přetáhnete adresáře, prochází se rekurzivně všechny podadresáře a v nich obsažené soubory.

Pomocí Extension můžete nastavit přípony souborů, ze kterých se má BOM odstraňovat. Defaultně je nastaveno *, což značí všechny soubory. Pokud chcete hledat pouze v souborech typu php zadejte do pole „php“ nebo „.php“.

Pokud je vybraná volba Remove BOM, což značí, že hlavička je ze souborů odstraňována, můžete zaškrtnout volbu Make backup, které před odebráním hlavičky původní souboru zazálohuje s příponou .removebom.bak. Pokud vyberete volbu Test BOM, soubory se neupravují a vy si můžete v okně zkontrolovat, které soubory BOM obsahují.

V pravé dolní části vidíte kolik souborů s BOM bylo nalezeno, můžete seznam souborů vymazat (Clear list) a můžete vybrat, zda vypisovat všechny zkoumané soubory/adresáře (List all files) nebo pouze ty, které obsahují BOM (List BOM files only).

Poslední volba je Always on top, která způsobí, že okno aplikace bude stále navrchu.

Verze pro příkazovou řádku

Verze pro příkazovou řádku existuje nejen ve verzi pro Windows (binárka je součástí balíku pro stažení), ale lze zkompilovat i pod Linuxem (návod naleznete u zdrojového kódu).

Použití z příkazové řádky je následující:

rmbom [--test|-t] [--backup|-b] [--all|-a] [--extension|-e <extension>] <path>

Nastavení je takovéto:

<path> cesta k soubor nebo adresáři, který se má zpracovat
 --test (-t)                  pouze otestuje soubory na přítomnost BOM
 --backup (-b)                před odstraněním BOM provede zálohu původního souboru
 --all (-a)                   vypisuje do konzole všechny soubory (a jejich stav) a adresáře, které prochází (standardně vypisuje pouze soubory s BOM)
 --extension (-e) <extension> zpracuje pouze soubory s příponou <extension> (standardně zpracovává všechny soubory)

Příklad 1: zpracuj všechy PHP soubory z adresáře D:\Web a vytvoř zálohu souborů, ze kterých se odstraňoval BOM

rmbom --extension php --backup D:\Web

Příklad 2: otestuj všechny soubory v adresáři D:\Src a vypiš stav všech souborů a procházených adresářů

rmbom -t -a D:\Src

Stažení

Pro stažení zip souboru s aplikací navštivte adresu http://forrest79.net/?produkt=7. Pro běh GUI verze programu je potřeba .NET Framework 2 (stahujte zde).

Zdrojový kód

Zdrojový kód aplikace je šířen pod licencí BSD a naleznete ho na adrese https://github.com/forrest79/removebom.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.