Como faço para definir a codificação de caracteres para UTF-8 para default.html?

votos
16

Passei as últimas horas recebendo o meu site para validar HTML 4.01 Strict e eu realmente conseguiram isso, mas ainda há um aviso que não pode se livrar. O aviso é:

Codificação de caracteres incompatibilidade!

A codificação de caracteres especificada no cabeçalho HTTP (iso-8859-1) é diferente do valor no elemento (UTF-8). I irá utilizar o valor do cabeçalho HTTP (iso-8859-1) para esta validação.

A página em questão é www.dubiousarray.net/default.html . Como você pode ver a partir do código fonte da página Eu tenho o seguinte elemento meta:

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

e tenho a certeza que o arquivo default.html é salvo com codificação UTF-8. O estranho é todas as outras páginas na validar site sem este aviso e eles têm a mesma meta tag e foram salvos exatamente da mesma maneira. Tenho a certeza que é algo a ver com a configuração do servidor. O arquivo .htaccess se parece com isso no momento:

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8

mas eu tentei todas as correções mostradas desta página e nenhum deles funcionou. Alguém tem alguma idéia sobre como proceder para se livrar deste aviso? Uma última coisa, no Firefox, se você clique direito na página e selecione 'View Page Info', default.html mostra como ISO-8859-1, enquanto todas as outras páginas mostram UTF-8.

Obrigado, Jacob

EDIT: Outra coisa a notar é que todos os arquivos html foram criados e salvos no exatamente da mesma maneira (codificação de caracteres definido para UTF-8 sem BOM), mas default.html é o único que não está exibindo como UTF-8 . Assim que eu supor que o servidor está fazendo algo especial para o arquivo default.html embora eu não estou certo que como não há sinal dele no arquivo .htaccess.

Publicado 25/05/2009 em 03:57
fonte usuário
Em outras línguas...                            


5 respostas

votos
26

É necessário substituir o cabeçalho de nível HTTP.

Isso deve funcionar:

<?php 
 header('Content-type: text/html; charset=utf-8'); 
?>

Note que o acima deve ser a primeira coisa em seu arquivo. Sem exceções. veja http://us2.php.net/manual/en/function.header.php

Para obter informações gerais sobre como alterar o cabeçalho conjunto de caracteres em diferentes pilhas web, ver http://www.w3.org/International/O-HTTP-charset

Larry

Respondeu 25/05/2009 em 14:30
fonte usuário

votos
2

O servidor está marcando claramente o documento como ISO-8859-1 nos cabeçalhos HTTP. Tente guardar default.html usando codificação UTF-8 com um editor adequado.

Respondeu 25/05/2009 em 04:07
fonte usuário

votos
1

Ok, eu vim com uma solução parcial para o meu problema. Como era apenas o arquivo default.html que estava causando o aviso eu assumi que o servidor estava fazendo algo especial para ele por causa de seu nome. Então eu fiz um novo arquivo chamado home.html com o mesmo conteúdo que o arquivo default.html e apontou o arquivo .htaccess para o novo arquivo (veja a linha 3 abaixo).

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
DirectoryIndex home.html
AddDefaultCharset UTF-8

Isso resolveu o problema e todos os arquivos são agora reconhecidos como UTF-8. Eu ainda não sei o que o servidor estava fazendo para o arquivo default.html ou onde as configurações relativas a esse são, mas como o meu problema é ido vou esquecer isso.

Respondeu 25/05/2009 em 05:20
fonte usuário

votos
0

incluir isto em seu código:

<meta charset="utf-8" />

Respondeu 07/07/2017 em 02:42
fonte usuário

votos
0

Você pode remover AddDefaultCharseta partir .htaccesse verificar a codificação? Salvei a fonte HTML da sua página web e abriu-a. Codificação foi detectada como UTF-8. No entanto, em ver a mesma página web servido por seu servidor web, a codificação é ISO-8859-1. É por isso que eu sugiro a remoção da antiga regra redundante.

Respondeu 25/05/2009 em 04:06
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more