Geralmente, a codificação da página é seguida, a menos que o servidor especifique uma codificação. Como a tag <meta>
parece especificar o que você está esperando, e como mudar manualmente para esse valor ajuda, parece que o servidor que você está recebendo a página está enviando uma codificação incorreta (Windows-1252) nos cabeçalhos para o navegador.
A maneira correta de corrigi-lo é configurar o servidor adequadamente. Para um servidor da empresa, isso provavelmente significa incomodar o administrador do servidor para fazê-lo.
Para ver os cabeçalhos (incorretos), se você estiver familiarizado com essas ferramentas, poderá usar itens como o painel "Net" do Firebug no Firefox ou o painel "Recursos" do Web Inspector no Chrome ou no Safari. Ou, se você não conhece essas ferramentas e o site está publicamente acessível, então você facilmente vê os cabeçalhos do servidor online usando, por exemplo, Web- Sniffer .
Assumindo a página de início de sessão especifica o mesmo que as páginas reais, o que resulta:
Content-Type: text/html
... sem nenhum valor para charset
. Não tenho certeza se um navegador ainda deve interpretar essa tag <meta>
, mas aparentemente o Firefox está ignorando e fazendo algumas suposições.
O Firefox que o ignora pode ter sido causado pelo código HTML. A tag <meta>
deve sempre ser especificada em <head>
antes de mais nada, pois ela também pode se aplicar ao título, scripts, CSS e assim por diante. Neste site, isso não acontece e, pior ainda, o HTML é uma bagunça total :
<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>
Enorme desenvolvedor falha.
(Incidentalmente, o Sniffer da Web mostra <meta http-equiv=content-type content="text/html; charset=ISO-8859-1">
, mas isso é devido a seus valores para Accept-Charset
. O Firebug mostra <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1254">
exatamente como na pergunta.)