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">

3 ответа3

3

Обычно применяется кодировка страницы, если только сервер не указывает кодировку. Поскольку <meta> видимому, указывает на то, что вы ожидаете, и поскольку помогает переключение на это значение вручную, похоже, что сервер, с которого вы получаете страницу, отправляет неверную кодировку (Windows-1252) в заголовках для браузер.

Правильный способ исправить это - правильно настроить сервер. Для веб-сервера компании это, вероятно, означает, что для этого нужно вызвать администратора сервера.

Чтобы увидеть (неправильные) заголовки, если вы знакомы с такими инструментами, вы можете использовать такие вещи, как панель "Net" Firebug в Firefox или панель "Ресурсы" Web Inspector в 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"> же, как в вопросе.)

3

Дополнение Charset Switcher для Firefox может помочь вам, если вы не контролируете содержимое своего веб-сайта.

Если вы спрашиваете, какой HTML-код вы должны сгенерировать, то мое первое замечание заключается в том, что текст вообще не должен кодироваться в Windows-1254 . HTML-страницы должны быть более корректно закодированы в UTF-8 , так как эта кодировка гораздо более корректно отображается во всех браузерах и во всех клиентских операционных системах.

Тег должен выглядеть так:

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

1

Об этой ошибке (Firefox 4.0.1) сообщается: https://bugzilla.mozilla.org/show_bug.cgi?id=651142

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .