Обычно применяется кодировка страницы, если только сервер не указывает кодировку. Поскольку <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">
же, как в вопросе.)