Strona 1 z 1

BOM - problem z UTF-8, PHP i Pajączkiem

PostNapisane: 6 kwietnia 2004, o 08:58
przez bukwa
Witam!
(Jeżeli powinienem dopisać ten post gdzieś indziej, to przepraszam i proszę o przeniesienie go w stosowne miejsce).

Ostatnio podczas pracy z Pajączkiem napotkałem problem następującej natury:

Po utworzeniu pliku PHP kodowanego w UTF-8 i wysłaniu go na serwer zobaczyłem, że przed wyświetlaną treścią strony pojawił się niepokojący odstęp. Sprawdzenie kodu strony pod Linuxem umożliwiło znalezienie znaków, które nie są wyświetlane przez edytory w systemie Windows. Są to trzy bajty, znane jako BOM (Byte Order Mark), wskazujące na początek pliku UTF.

Zapisywanie przez Pajączka tych bajtów w plikach PHP ma konsekwencje dwojakiego rodzaju:
- w przeglądarce pojawiają się niepotrzebne znaki, które (zwykle) odsuwają stronę od górnej krawędzi okna
- niektóre pliki PHP wysyłają do przeglądarki nagłówki (np. kodowanie strony, stawianie ciasteczek), które muszą do niej dotrzeć przed główną treścią strony. Występowanie BOM-u na początku dokumentu uniemożliwia zatem wysłanie nagłówków i powoduje błędy. :roll:

Co radzicie w takiej sytuacji i jakie jest oficjalne stanowisko w tej sprawie? :-)

-----------------------------
Do poniższej notki: dziękuję za odpowiedź. Działa! :-)

PostNapisane: 6 kwietnia 2004, o 14:09
przez platekr
Problem był już poruszany na forum. Nagłówek dla plików UTF jest prawidłowy z punktu widzenia specyfikacji technicznej UTF jednak faktycznie pliki PHP nie powinny posiadać tego nagłówka, przynajmniej nie dla wszystkich interpreterów PHP. W tym celu w ustawieniach znajduje się przełącznik, który pozwala na wyłączenie tego nagłówka i w ten sposób można wyłączyć dodawanie tych bajtów nagłówkowych przy zapisie plików UTF. Bodajże Ustawienia / Edytor / Dokumenty.