O servidor web Apache REALMENTE não parece gostar do utf-8

O servidor web Apache REALMENTE não parece gostar do utf-8

Isso está realmente me irritando, então espero que alguém aqui possa me dizer o que estou fazendo de errado. Estou executando um servidor web Apache em meu laptop Windows 7 há algum tempo, para testar algumas programações que venho fazendo em meu tempo livre. Recentemente, percebi que os caracteres Unicode nas minhas páginas não eram exibidos corretamente no meu navegador. Fiz muitos testes inúteis e descobri que os caracteres estavam sendo enviados como UTF-8 correto e também adicionei uma <meta http-equiv="Content-Type" content="text/html; charset=utf-8">linha no topo da minha saída html, que pretendia corrigir o problema, mas não Na verdade, não faço nada. Então, reservei um tempo para verificar os cabeçalhos de resposta HTTP e vi que o Apache está enviando de volta isto:

HTTP/1.1 200 OK
Data: domingo, 19 de julho de 2015, 18:18:40 GMT
Servidor: Apache/2.2.25 (Win32)
Codificação de transferência: fragmentada
Tipo de conteúdo: texto/html; conjunto de caracteres=iso-8859-1

OK, então isso parece um problema bastante simples. De acordo com a Internet, posso consertar isso adicionando AddDefaultCharset utf-8ao meu arquivo httpd.conf. Não havia nenhuma AddDefaultCharsetlinha no arquivo em lugar nenhum, então adicionei-o na parte inferior exatamente como está escrito acima. Então reiniciei o serviço Apache e descobri que o problema permanecia inalterado. Então, reiniciei meu computador, alegando que talvez não soubesse como reiniciar corretamente o Apache, mas ele ainda não exibe os caracteres corretamente e ainda está enviando charset=iso-8859-1os cabeçalhos.

Também encontrei um site que sugeria que algo chamado Windows VirtualStore poderia estar salvando automaticamente o arquivo de configuração em outro lugar só para me ferrar, mas não acredito que isso esteja acontecendo porque não consigo encontrar nenhum arquivo Apache no Diretório VirtualStore. Além disso, você deveria ser capaz de desabilitar o VirtualStore assumindo a propriedade da pasta, e eu fiz isso há um tempo porque não me permitia alterar nada de outra forma.

Infelizmente, nem tenho certeza do que mais procurar para esse problema. Alguém tem alguma ideia?

Responder1

Tente criar um arquivo HTML de 3 linhas, solicite-o ao navegador e verifique o cabeçalho. Isso garante que não haja cabeçalhos CGI ou qualquer coisa que interfira na configuração do servidor.

<html><head><title>Some Test file</title></head>
<body>unicode test äöüÄÖÜß</body>
</html>

Continue brincando com a configuração do seu servidor até que este arquivo seja enviado com uma charset=utf-8especificação no cabeçalho Content-type.

A seguir, experimente um programa perl mínimo:

#!/usr/bin/perl   <-- or omit this line as you're on windows
binmode(STDOUT, ":utf8");
print qq(Content-type: text/html; charset=utf-8

<html><head><title>Some Test file</title></head>
<body>unicode test äöüÄÖÜß</body>
</html>
);

Se isso funcionar (envia o cabeçalho correto), qualquer outra coisa que não funcione estará em suas bibliotecas, não na configuração do servidor.

informação relacionada