Проблема кодування символів Firefox


1

Я використовую Firefox 3.5.4 (EN) під Windows XP SP3 (TR). Коли я відкриваю сторінку веб-звітів своєї компанії, турецькі символи не відображаються належним чином, тому мені вручну потрібно змінити налаштування кодування символів із західного (Windows-1252) на турецьке (Windows-1254). Я не маю цієї проблеми з іншими турецькими сайтами, оскільки вони автоматично змінюють кодування на турецьку.

Як я можу змусити Firefox автоматично знаходити належні налаштування кодування символів для проблемних веб-сайтів?

Редагувати: У вихідному коді відповідної сторінки я знайшов такий рядок коду:

<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1254">

не впевнений, але це допоможе alanwood.net/unicode/firefox.html
ukanth

@UK: Дякую, але результату немає.
Мехпер К. Палавузлар

Відповіді:


3

Зазвичай дотримується кодування сторінки, якщо сервер не вказав кодування. Оскільки <meta>тег, схоже, вказує на те, що ви очікуєте, і як перемикання на це значення вручну допомагає, це здається, що сервер, від якого ви отримуєте сторінку, надсилає в браузер неправильне кодування (Windows-1252) у заголовках.

Правильний спосіб виправити це - правильно налаштувати сервер. Для веб-сервера компанії це, ймовірно, означає помилку адміністратора сервера для цього.

Щоб побачити (неправильні) заголовки, якщо ви знайомі з такими інструментами, ви можете використовувати такі речі, як панель "Net" Firebug у Firefox або панель "Ресурси" веб-інспектора в Chrome або Safari. Або якщо ви не знаєте цих інструментів і веб-сайт є загальнодоступним, ви легко бачите заголовки сервера в Інтернеті, використовуючи, наприклад, Web-Sniffer .

Якщо припустити, що сторінка входу вказує те саме, що і фактичні сторінки, то це дає:

Content-Type: text/html

... без жодного значення для charset. Не впевнений, чи повинен браузер все-таки інтерпретувати цей <meta>тег, але, мабуть, Firefox його ігнорує та робить найкращі здогадки.

Ігнорування Firefox може бути спричинене джерелом HTML. <meta>Тег завжди повинен бути зазначений в <head>перед що - небудь ще, так як це може також застосовуватися до назви, скрипти, CSS і так далі. На цьому сайті це не так, і що ще гірше, HTML - це загальний безлад :

<SCRIPT LANGUAGE=JavaScript SRC="/dergi/_ScriptLibrary/pm.js"></SCRIPT>
<SCRIPT LANGUAGE=JavaScript>
  thisPage._location = "/dergi/giris/login.asp";
</SCRIPT>
<FORM name=thisForm METHOD=post>
<HTML>
<style type="text/css">
<!--
  [..]
-->
</style>
<HEAD>
  [..]
  <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1254">
  <META NAME="GENERATOR" CONTENT="Microsoft FrontPage 5.0">
  <META NAME="AUTHOR" CONTENT="[removed to protect the innocent...]">  
  <TITLE>YAYSAT DERGİ RAPORLARI</TITLE>
</HEAD>
<BODY>
<center>
[..]
</center>
</body>
<INPUT type=hidden name="_method">
<INPUT type=hidden name="_thisPage_state" value="">
</FORM>
</html>

Величезний розробник вийшов з ладу.

(До речі, Web-Sniffer показує <meta http-equiv=content-type content="text/html; charset=ISO-8859-1">, але це пов'язано з його значеннями для Accept-Charset. Firebug показує так <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1254">само, як у питанні.)


1
Цікаво, що коли я відкриваю ту саму сторінку в IE8, вона відображається належним чином.
Мехпер К. Палавузлар

1
Якщо я пам'ятаю правильно, Internet Explorer був першим, хто використовував, <meta>оскільки він не шанував заголовки відповідей, що надсилаються сервером. Отже, IE8 може дуже корисно, <meta>а потім ігнорувати значення у заголовках відповідей. Дивіться також "Firefox відображає символи сміття замість веб-сторінки" на superuser.com/questions/23777/… для прикладу того, як все може зіпсуватись ...
Ар'ян

THX для редагувань, арджан. пляма на.
шарлатаний кіхот

1
Я використав Web-Sniffer, і він повернув такий результат: Accept-Encoding: gzip [CRLF] Accept-Charset: ISO-8859-1, UTF-8; q = 0.7, *; q = 0.7 [CRLF] Чи означає це проблема виходить безумовно з налаштувань сервера?
Мехпер К. Палавузлар

Дуже дякую. Я прийму вашу відповідь, якщо ви, будь ласка, вставити її як відповідь.
Мехпер К. Палавузлар

3

Додаток Charset Switcher для Firefox може допомогти вам, якщо ви не контролюєте вміст свого веб-сайту.

Якщо ви запитуєте, який html ви повинні генерувати, то моє перше зауваження - це те, що текст взагалі не повинен кодуватися Windows-1254. Сторінки Html мають бути правильнішими UTF-8, оскільки це кодування набагато вірніше відображатись у всіх браузерах та на всіх клієнтських операційних системах.

Тоді тег повинен виглядати так:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.