BOM – czyli jak odczytywać dokument tekstowy

BOM (Byte Order Mark) są to znaki poprzedzające dokument, dzięki którym programy go odczytujące mogą odczytać różne informacje.

Po co to komu?

Przykładowo wysyłając pliki za pomocą protokołu HTTP mamy możliwość określenia typu za pomocą nagłówka Content-Type. Innym razem możemy uzgodnić z adresatem w jaki sposób powinien odczytywać dokument. Aczkolwiek czasami pojawiają się sytuacje, gdy należy odczytać dokument bez żadnej wiedzy o nim. I właśnie w takich przypadkach można się posłużyć prefiksem (BOM) od którego zaczyna się dokument.

Jakie informacje może zawierać BOM?

Jestem implementacją Unicode

Dzięki prefiksowi BOM możliwe jest stwierdzenie, że dokument został zapisany za pomocą którejś z implementacji Unicode

Jestem zapisany w kodowaniu

Dzięki prefiksowi BOM wiadomo także jaka jest to implementacja Unicode (UTF-8, UTF-16…).

W jakiej kolejności odczytywać bajty – endianess

Dzięki prefiksowi BOM jasne jest w jakiej kolejności odczytywać bajty. Przykładowo w UTF-16 mamy dwa bajty na słowo i teraz ważne jest w której kolejności odczytać te dwa bajty.

Przykłady BOM

KodowanieBOM w zapisie szesnastkowym
UTF-8EF BB BF
UTF-16 BE (Big Endian)FE FF
UTF-16 LE (Little Endian)FF FE

Warto zajrzeć

1. https://en.wikipedia.org/wiki/Byte_order_mark

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *