Чому Firefox відключає меню «Кодування символів» для деяких сайтів?


16

На деяких веб-сайтах я помітив, що меню "Перегляд / кодування символів" Firefox вимкнено, чому?

Чи можна це ввімкнути?


Прикладом одного з таких сайтів є haszon.hu .
Кальмарій

Можливо, пов’язаний з помилкою 832910 , яка вимагає відключити меню кодування на певних сайтах, щоб запобігти подвигам (цей тип призначений для Android і не вирішений; я полюю на еквівалент робочого столу).
Боб

Відповіді:


16

Це пов’язано з виправленням помилки 234628 , вимкнути перегляд> меню кодування символів, коли воно не матиме ефекту / є непотрібним (наприклад, XML) .

Зокрема, якщо ви подивитесь на коментар №63 :

Що стосується випадку, коли є BOM UTF-8, є сенс дозволити BOM мати перевагу над меню

ВВП використовується для ідентифікації порядку байтів в Unicode , кодованого документа.

Наведені причини можна узагальнити як:

  • Gecko (механізм візуалізації Firefox) не підтримує жодного іншого кодування, яке б відображало BOM як допустимий початок HTML ( <htmlабо <!DOCTYPEтощо).

  • Інші основні браузери (IE6 +, на базі WebKit [Chrome тощо) роблять те саме. Наприклад, якщо ви спробуєте змінити кодування на Chrome, воно просто повернеться до UTF-8.

  • В іншому випадку це може зіпсувати введення форми.


Наведена вами прикладна сторінка починається з трьох байтів BOM UTF-8. Це можна побачити, якщо ви збережете сторінку та відкриєте файл HTML у шестигранному редакторі. BOM позитивно ідентифікує його як документ UTF-8, і відкриття його в будь-якому іншому кодуванні не призведе до правильної HTML-сторінки.

Знімок екрана шестигранного редактора, що показує BOM

Ви можете побачити 0xEF 0xBB 0xBFBOM зліва, як описано у Вікіпедії . Праворуч він показує, як це виглядає, коли він відображається як ANSI / CP1252 .

Якщо ви дійсно хочете, ви можете зберегти файл, зняти BOM із правопорушенням та відкрити файл. Або ви можете встановити проксі (Fiddler2 для цього хороший), який буде перехоплювати та змінювати файли, перш ніж вони потраплять у ваш браузер. Однак це не дуже хороші рішення, і вони, ймовірно, просто створюють подальші проблеми. Найкраще, якщо у вас виникли проблеми з кодуванням, - це зв’язатися з сервісом на веб-сайті. Усі ми повинні переходити до Unicode, де це можливо, не застосовуючи старіші та обмежені стандарти кодування.


-1

Це, мабуть, помилка. Хром був подібний випуск років тому.


2
Це не помилка. Це було цілком навмисно . Зауважте, що згідно з цим коментарем , меню не впливає на Chrome на подібних сторінках (і я щойно тестував, на поточному Chrome він скидає на UTF-8, якщо ви спробуєте змінити його).
Боб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.