Autor Zpráva
matata8611
Profil
Ahoj,
řešil jsem tu několik problémů s webem a byl jsem někoikrát upozorněn uživatelem bubák na BOM, který bych měl odstranit. Problémy jsem vyřešil. Něco jsem si o BOM přečetl, ale web se zobrazoval jak má tak jsem to neřešil.
Teď ale nastal problém při sdílení na facebook, kde mi debugger píše: Meta Tags In Body.

Při validaci jsem zjistil, že to bude tím BOM. Bohužel ale ať dělám co dělám, nedaří se mi ho odstranit z řádku 1 znak 1.
Na kódování používám Dreamveawer, kde ve vlastnostech stránky mohu zastrhnout nebo odškrtnou možnost "Zahrnout signaturu unicode BOM".

Pro příklad řešme tuto stránku.
Zobrazuje se pomocí souboru single-all.php, který začíná takto:
<?php get_header(); ?>
<?php get_sidebar(); ?>

Z header.php, z sidebar.php i z single-all.php, jsem signaturu unicode odstranil, ale pořád tam BOM je. Nevím si s tím rady. Můžete mi prosím pomoci?

PHP soubory jsou případně k dispozici zde. Děkuji moc.
CZghost
Profil
matata8611:
BOM (zkratka Byte Order Mark, značka pořadí bytů) nikdy vidět nebude, musíš to odstranit pomocí Hex editoru, který takový znak dokáže zobrazit. Hex editory zobrazují surová data pomocí textu, normální textové editory ti v tom nepomůžou. Dobrý hex editor zdarma je Hexplorer, používám ho i já a jsem s ním spokojený. V levé části jsou byty uspořádany do sloupců a reprezentovány dvojicí hexadecimálních číslic (číslice 0-9 a písmena A-F), v pravé části je pak řetězec. Na samém začátku toho řetězce najdeš BOM, ten vymaž a soubor ulož. Signatura by neměla mít vliv, ta jenom určuje formát textu, BOM ale dokáže nadělat paseku, v Notepadu++ mám jako výstupní formát textu nastavený UTF-8 bez BOM, takže značka se mi do souboru nevkládá.



Teď jsem se na ty soubory díval, BOM jsem nenašel. Pokud je v souboru BOM, měl by být úplně na začátku souboru a Hex editor by ho měl ukázat. Používáš Dreamweaver a edituješ WordPressovou šablonu, která by BOM mít neměla. Zkus uložit nové soubory s odkšrtnutým zahrnutím signatury, originální soubory smazat a ty nové přejmenovat na ty původní. Pokud to nic nevyřešilo, pak nevím. Podle Hexploreru soubory BOM nemají, jinak by se mělo jednat o jednobytová data úplně na začátku souboru před vším ostatním.



https://cs.wikipedia.org/wiki/Byte_order_mark Tam najdeš tabulku pro různá kódování, UTF-8 zahrnuje tři bajty, v tom jsem se mýlil. EF BB BF jsem na začátku souboru nenašel, tudíž nemá BOM.
matata8611
Profil
Děkuji moc. BOM se podařilo odstranit. Jako vedlejší efekt, se mi ale stránky totálně rozhodily v IE 8 a 9...

Jak je to možné prosím?

EDIT: tak vyřešeno, prostě kód který mi předtím neseděl v ie a musel jsem ho poměrně složitě upravovat pro ie, mi teĎ sedí pro všechny prohlížeče. BOM je teda peknej zmetek. Díky moc.
CZghost
Profil
matata8611:
Není zač, rád pomůžu :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: