Mi az az utf-8 és a bom? A böngészőt tudom, de miközevanezekhez? Röviden: ha nincs bekapcsolva, gyakran hülye betűk lesznek az ékezetesek helyett.
Ez egy karakterkódolás. Utóbbi egy táblázat, amit minden számítógép ismer, és ez alapján dönti el, hogy egy szöveges fájlban egy bizonyos byte vagy kettő milyen betűt reprezentál. Ami utf-8-ban "á", az ANSI-ban, ISO-8859-*-ban meg két fura karakter. Ami ott "á", az utf-8-ban egy kocka, azt nem tudja megjeleníteni.
Mert van ahol, ilyen betűket használnak, van ahol olyat. Ha mindenki egy táblázatot használna — bár van ilyen táblázat (UTF-16, UTF-32) — az gazdaságtlan lenne. Én utf-8-ot használok a szerkesztőben, mivel ez a leguniverzálisabb, ezért az itt létrehozott fájlok is ilyen kódolásúak lesznek.
Hát ha egy szöveges fájlt ékezetes betűkkel elmentesz mondjuk ANSI meg UTF-8 formátumban, akkor ha azokat újból megnyitod, akkor ugyanaz áll mind a kettőben... Pedig különböznek: Nézd meg, az UTF-8-as pár byte-al, de több lesz. Tehát más. Akkor egy böngésző hogyan állapítja meg, hogy mi a karakterkódolás? Nehezen. Néha nem is. Ekkor jelennek meg hülye betűk az ékezetesek helyett.
Ezért kell valami segítség a kliensnek, hogy mi a karakterkódolás.
HTML esetén pl. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
De mi van, ha nem html? Segít ...
Ez a Byte Order Mark — bájtsorrend jel — Ez karakterkódolásonként változik. Pár bájt a szövegfájl elején. Utf-8 esetén EF BB BF. Ez máris segít a programnak megállapítani a karakterkódolást. Ha nincs, akkor ezt más módon kell biztosítani
Azért, mert ez a pár kóbor bájt néha zavaró lehet egy valami számára. De alapbeállításként be van kapcsolva.