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

1

Isso está realmente me incomodando, então espero que alguém aqui possa me dizer o que estou fazendo de errado. Eu tenho funcionado um servidor web Apache no meu laptop Windows 7 por um tempo, agora, para testar alguns programas que tenho feito no meu tempo livre. Recentemente, notei que os caracteres Unicode nas minhas páginas não estavam sendo exibidos corretamente no meu navegador. Eu fiz o que acabou sendo um monte de testes inúteis e descobri que os personagens estavam sendo enviados como UTF-8 correto, e também adicionei uma linha <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> no topo da minha saída html, que foi feita para corrigir o problema. problema, mas na verdade não fez nada. Então, aproveitei para verificar os cabeçalhos de resposta HTTP e vi que o Apache está enviando de volta isso:

HTTP/1.1 200 OK
Date: Sun, 19 Jul 2015 18:18:40 GMT
Server: Apache/2.2.25 (Win32)
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

OK, isso parece um problema bem simples. De acordo com a Internet, posso consertar isso adicionando AddDefaultCharset utf-8 ao meu arquivo httpd.conf. Não havia nenhum AddDefaultCharset linhas no arquivo em lugar algum, então eu adicionei no final exatamente como está escrito acima. Então eu reiniciei o serviço Apache e descobri que o problema não foi alterado. Então, reiniciei meu computador, na teoria de que talvez eu não saiba como reiniciar corretamente o Apache, mas ele ainda não exibe os caracteres corretamente, e ainda está enviando charset=iso-8859-1 nos cabeçalhos.

Eu também encontrei um site que sugeria que algo chamado Windows VirtualStore poderia estar salvando automaticamente o arquivo de configuração em outro lugar apenas para f * ck comigo, mas eu não acredito que isso esteja acontecendo porque eu não consigo encontrar nenhum Apache arquivos no diretório VirtualStore. Além disso, você deve ser capaz de desabilitar o VirtualStore, apropriando-se da pasta, e eu fiz isso há um tempo, porque não estava me permitindo alterar nada de outra forma.

Infelizmente, não sei ao certo o que mais analisar esse problema. Alguém tem alguma ideia?

    
por Gorcq 19.07.2015 / 20:36

1 resposta

1

Tente criar um arquivo HTML de 3 linhas, solicite-o no 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 jogando com a configuração do servidor até que este arquivo seja enviado com uma especificação charset=utf-8 no cabeçalho Content-type.

Em seguida, 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 está nas bibliotecas, não na configuração do servidor.

    
por 19.07.2015 / 22:26