Dlaczego Firefox wyłącza menu „Kodowanie znaków” w przypadku niektórych witryn?

16

W przypadku niektórych witryn zauważyłem, że menu Firefox „Kodowanie / kodowanie znaków” jest wyłączone, dlaczego?

Czy można to włączyć?

Calmarius
źródło
Przykładem takiej witryny jest haszon.hu .
Calmarius
Prawdopodobnie związany z błędem 832910 , który żąda wyłączenia menu kodowania w niektórych witrynach, aby zapobiec exploitom (ten jest specyficzny dla Androida i nierozwiązany; szukam ekwiwalentu pulpitu).
Bob

Odpowiedzi:

16

Jest to spowodowane poprawką dotyczącą błędu 234628 , menu Wyłącz widok> Kodowanie znaków, gdy nie ma efektu / jest niepotrzebne (np. XML) .

W szczególności, jeśli spojrzysz na komentarz nr 63 :

Jeśli chodzi o BOM UTF-8, sensowne jest, aby BOM miał pierwszeństwo przed menu

BOM służy do identyfikacji kolejność bajtów w Unicode zakodowanego dokumentu.

Podane powody można streścić jako:

  • Gecko (silnik renderujący Firefoksa) nie obsługuje żadnego innego kodowania, które renderowałoby BOM jako prawidłowy start HTML ( <htmllub <!DOCTYPEitp.).

  • Inne główne przeglądarki (IE6 +, oparte na WebKit [Chrome itp.]) Robią to samo. Na przykład, jeśli spróbujesz zmienić kodowanie w Chrome, po prostu resetuje się z powrotem do UTF-8.

  • W przeciwnym razie może dojść do zakłócenia wprowadzania danych.


Podana przykładowa strona zaczyna się od trzech bajtów BOM UTF-8. Możesz to zobaczyć, jeśli zapiszesz stronę i otworzysz plik HTML w edytorze szesnastkowym. LM pozytywnie identyfikuje go jako dokument UTF-8, a otwarcie go w innym kodowaniu nie dałoby poprawnej strony HTML.

Zrzut ekranu edytora szesnastkowego pokazującego BOM

Możesz zobaczyć 0xEF 0xBB 0xBFBOM po lewej stronie, jak opisano na Wikipedii . Po prawej stronie pokazuje, jak to wygląda, gdy jest renderowane jako ANSI / CP1252 .

Jeśli naprawdę chcesz, możesz zapisać plik, zdjąć obraźliwe BOM i otworzyć plik. Lub możesz skonfigurować serwer proxy (Fiddler2 jest do tego dobry), który będzie przechwytywał i modyfikował pliki, zanim dotrą do przeglądarki. Nie są to jednak dobre rozwiązania i mogą powodować kolejne problemy. W przypadku problemów z kodowaniem najlepiej jest skontaktować się z administratorem witryny. W każdym razie powinniśmy wszyscy przejść na Unicode, nie używając starszych i bardziej ograniczonych standardów kodowania.

Kok
źródło