Problema de codificação de caracteres do Firefox

1

Estou usando o Firefox 3.5.4 (EN) no Windows XP SP3 (TR). Quando eu abro a página de relatórios da web da minha empresa, caracteres turcos não são exibidos corretamente, então eu manualmente tenho que mudar a configuração de codificação de caracteres de ocidental (Windows-1252) para turco (Windows-1254). Eu não tenho esse problema com outros sites turcos, pois eles mudam automaticamente a codificação para turco.

Como posso fazer o Firefox encontrar automaticamente as configurações adequadas de codificação de caracteres para sites problemáticos?

Editar: encontrei a seguinte linha de código no código-fonte da página relevante:

<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=WINDOWS-1254">
    
por Mehper C. Palavuzlar 06.11.2009 / 14:10

3 respostas

3

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.)

    
por 06.11.2009 / 14:39
3

O add-on do Firefox Charset Switcher pode ajudá-lo se você não controlar o conteúdo do seu site.

Se você está perguntando qual html você deve gerar, então meu primeiro comentário é que o texto não deve ser codificado de forma alguma em Windows-1254 . As páginas HTML devem ser mais corretamente codificadas em UTF-8 , já que esta codificação é muito mais segura para ser exibida corretamente em todos os navegadores e em todos os sistemas operacionais clientes.

A tag deve se parecer com:

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

    
por 06.11.2009 / 16:07
1

Este bug ( Firefox 4.0.1 ) foi reportado: link

    
por 15.06.2011 / 14:48