Dreamweaver CS3 i problem z UTF-8
Czy aplikacja warta wiele tysięcy zł jest naprawdę dobra i niezawodna ?
W poprzednim poście pisałem o prowadzonych pracach w serwisie pokoloruj.pl. Była to tylko wzmianka, za którą w rzeczywistości stało kilka tygodni prac, testów i poprawek. Nie obyło się bez nerwów i zgrzytu zębami. Wyobraź sobie, że nagle okazuje się, że pliki zapisywane w standardzie UTF-8, zaczynają tracić polskie literki, zamiast których są ich odpowiedniki w iso-8859-1 (angielskie), a w innych przypadkach szlaczki.
To jednak nie koniec problemów. Żeby było ciekawiej część plików UTF-8 otrzymywała niechcianą sygnaturę BOM o wartości 0xBFBBEF, co wprawdzie odpowiada kodowaniu UTF-8, ale używanie sygnatur nie jest żadnym obowiązkiem. W przypadku witryn internetowych stosowanie sygnatury w plikach php czy html jest wręcz niewskazane, ponieważ wszystkie bajty sygnatury są pomijane przez Apache i PHP i przepuszczane bezpośrednio do przeglądarki. W takiej sytuacji wykonywany skrypt php nie może już wysłać żadnych nagłówków, a tym samym ustawić cookies.
Jak to się skończyło ?
Całe to zamieszanie na szczęście skończyło się pomyślnie. Kosztowało to mnie sporo nerwów i nocnych godzin pracy. Zamiast Dreamweavera użyłem JEdita oraz FreeCommandera do wykrywania i usuwania niechcianych sygnatur BOM i podmiany znaków na polskie. Operacja oczyszczania kodu objęła kilkadziesiąt plików i wymagała przeczytania wszystkich tekstów i komentarzy. Wdrożenie wydłużyło sie o 3 dni. Sprawę zgłosiłem do Adoba, ale jak zapewne się domyślasz, pozostało to bez odpowiedzi (przynajmniej na razie).
Podsumowanie
Cały pakiet CS3 Web Premium kosztował sporą sumkę. Patrząc na możliwości i funkcjonalność dostarczanego wraz z nim edytora dla webmasterów i programistów witryn i systemów webowych nie czuję zbytniego entuzjazmu podczas jego używania (aktualnie zakazałem we firmie jego używania). Pracowałem już ze lepszymi edytorami. Ostatnie doświadczenia pokazały, że opensource’owy JEdit mimo pewnych braków potrafi sobie dobrze radzić zarówno z kodowaniem UTF-8 jak również z template’ami. Wciąż niewiele edytorów potrafi poprawnie formatować kod, w którym stosowane są łańcuchy Heredoc’owe.
Według mnie pakiet Adoba powinien być o 2000 tys netto tańszy. Pomimo mieszanych uczyć co do Dreamweaver’a dla potrzeb technologii Flash’owych i tak muszę go mieć, no chyba że Microsoft wprowadzi na poważnie swojego SilverLighta i odpowiednie do niego środowiska za rozsądną cenę. Jeśli nie musisz to nie kupuj i nie używaj - szkoda kasy.
Tags: kodowanie
Niedawno miałem podobny problem z Dreamweaverem CS3. No i oczywiście nie mogłem wystartować sesji przez BOM w UTF-8 ale podłubałem w preferencjach, w opcji “Nowy dokument” normalizację unicode ustawiłem na “Brak” i odznaczyłem “Dołącz BOM”. Dopiero gdy z takimi opcjami plik zostaje nadpisany a nie zapisany (”Zapis jako…” a nie “zapisz”) zmiana daje efekty - UTF-8 nie dostają BOM i wszystko działa
Pozdrawiam.