Comment puis-je régler l'Encodage de Caractères UTF-8 par défaut.le html?

j'ai passé les dernières heures à obtenir mon site web pour valider HTML 4.01 Strict et j'ai effectivement réussi cela, mais il ya encore un avertissement dont je ne peux pas me débarrasser. L'avertissement est le suivant:

manque de concordance dans L'encodage des caractères!

le codage de caractères spécifié dans L'en-tête HTTP (iso-8859-1) est différente de la valeur dans le élément (utf-8). Je vais utiliser la valeur de L'en-tête HTTP (iso-8859 - 1) pour ce validation.

La page en question est www.dubiousarray.net/default.html. Comme vous pouvez le voir à partir de la source de la page j'ai le texte suivant élément meta:

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

et je me suis assuré que le défaut.le fichier html est sauvegardé avec L'encodage UTF-8. Ce qui est étrange, c'est que toutes les autres pages du site sont validées sans cet avertissement et qu'elles ont la même balise meta et ont été sauvegardées exactement de la même manière. Je suis assez sûr que c'est quelque chose à voir avec la la configuration du serveur. Le. le fichier htaccess ressemble à ceci pour le moment:

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

mais j'ai essayé toutes les corrections indiquées sur cette page et aucun d'entre eux travaillaient. Quelqu'un aurait-il des idées sur la façon de se débarrasser de cet avertissement? Une dernière chose, dans Firefox si vous faites un clic droit sur la page et sélectionnez "View Page Info", par défaut.le html se présente comme ISO-8859-1 alors que toutes les autres pages montrent UTF-8.

Merci, Jacob

modifier: autre chose à noter est que tous les fichiers html ont été créés et sauvegardés exactement de la même manière (codage de caractères défini à UTF-8 sans BOM) mais par défaut.html est le seul qui ne s'affiche pas comme UTF-8. Je suppose donc que le serveur fait quelque chose de spécial à la valeur par défaut.fichier html si je ne suis pas sûr de ce qu'il n'y a pas de signe de lui dans la .fichier htaccess.

16
demandé sur Jacob de Lacey 2009-05-25 06:57:41

5 réponses

vous devez remplacer L'en-tête HTTP.

Cela devrait fonctionner:

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

notez que ce qui précède doit être la première chose dans votre dossier. Pas d'exceptions. Voir http://us2.php.net/manual/en/function.header.php

pour des informations générales sur la façon de changer l'en-tête du jeu de caractères dans différentes piles de sites Web, voir http://www.w3.org/International/O-HTTP-charset

Larry

26
répondu Larry K 2009-05-25 13:30:00

le serveur indique clairement que le document est ISO-8859-1 dans les en-têtes HTTP. Essayez de sauvegarder par défaut.html utilisant L'encodage UTF-8 avec un éditeur approprié.

2
répondu hannson 2009-05-25 03:07:00

OK, j'ai trouvé une solution partielle à mon problème. Comme il n'avait que la valeur par défaut.le fichier html qui causait l'avertissement j'ai supposé que le serveur faisait quelque chose de spécial à cause de son nom. J'ai donc créé un nouveau fichier appelé home.html avec le même contenu que par défaut.fichier html et a souligné que le .htaccess file vers le nouveau fichier (voir ligne 3 ci-dessous).

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

cela a corrigé le problème et tous les fichiers sont maintenant reconnus comme UTF-8. Je ne suis toujours pas sûr de ce que le serveur faisait à la valeur par défaut.fichier html ou où les paramètres concernant ce sont mais que mon problème est allé je vais oublier cela.

1
répondu Jacob de Lacey 2009-05-25 04:20:17

Pouvez-vous supprimer AddDefaultCharset.htaccess et vérifiez l'encodage? J'ai enregistré la source HTML de votre page Web et je l'ai ouverte. L'encodage a été détecté comme UTF-8. Cependant, en regardant la même page Web servie par votre serveur web, L'encodage est ISO-8859-1. C'est pourquoi je suggère la suppression de l'ancienne règle redondante.

0
répondu Alan Haggai Alavi 2009-05-25 03:06:20

incluez ceci dans votre code:

<meta charset="utf-8" />
0
répondu Charuvind Atre 2017-07-07 02:42:15