225 votes

Le codage des caractères du document HTML n'a pas été déclaré

Lorsque je clique sur le bouton de soumission de mon formulaire, le message d'erreur suivant apparaît :

Le codage des caractères du document HTML n'a pas été déclaré. Dans certaines configurations de navigateurs, le document s'affichera avec un texte tronqué s'il contient des caractères ne faisant pas partie de la gamme US-ASCII. Le codage des caractères de la page doit être déclaré dans le document ou dans le protocole de transfert.

insérer.html :

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>insert page</title></head>
    <body>
    <h1> Insert Page </h1>
        <form action="insert.php" method="post"  enctype="application/x-www-form-urlencoded" >
         <p>Title:<input type="text" name="title" size="40" /></p>
         <p>Price:<input type= "text" name="price" size="40" /></p>
         <p><input type="submit" value="Insert" />
         <input type="reset" value="Reset" /></p>
        </form>    
    </body>
</html>

insert.php :

<?php
    $title = $_POST["title"];
    $price = $_POST["price"];

    echo $title;
?>

Je ne sais pas où se situe le problème dans mon code. Merci de m'aider.

4 votes

0 votes

Essayez de nommer votre page .html en .php : insert.html -> insert.php . Et nommez votre fichier de gestion des formulaires ( insert.php ) à insert_action.php ou quelque chose comme ça. (Je ne sais pas si cela peut aider, mais je ne mélangerais pas les deux ). html y php lorsque l'on utilise PHP).

0 votes

Oh là là, c'est une vieille question. Je n'avais pas remarqué les dates à cause de la nouvelle réponse...

352voto

Krishan Gopal Points 849

Ajoutez ceci comme première ligne dans la section HEAD de votre modèle HTML

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

6 votes

La deuxième ligne produit cette erreur dans le validateur W3 pour docytype html : Bad value encoding for attribute http-equiv on element meta.

4 votes

<meta http-equiv="Content-Type" content="text/html ; charset=ISO-8859-1">

2 votes

@yitwail J'ai exclu la deuxième ligne et cela a fonctionné.

75voto

Dragan Sekuloski Points 799

J'ai eu le même problème avec la situation la plus basique et mon problème a été résolu en insérant cette balise dans l'en-tête du document :

<meta charset="utf-8">

Le codage des caractères (qui est en fait UTF-8) du document html n'a pas été déclaré.

En savoir plus aquí y aquí .

26voto

J'ai eu le même problème lorsque j'ai exécuté mon application de formulaire dans Firefox. Ajout <meta charset="utf-8"/> dans le code html a résolu mon problème dans Firefox.

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>Voice clip upload</title>
  <script src="voiceclip.js"></script>
</head>

<body>
  <h2>Upload Voice Clip</h2>
  <form id="upload_form" enctype="multipart/form-data" method="post">
    <input type="file" name="file1" id="file1" onchange="uploadFile()"><br>
    <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  </form>
</body>

</html>

21voto

AlienWebguy Points 42370

Lorsque vous publiez un message, le navigateur affiche uniquement $title - toutes les balises HTML et le doctype disparaissent. Vous devez les inclure dans votre insert.php fichier :

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;

 ?>  
</body>
</html>

1 votes

Merci, j'avais un problème similaire, et votre réponse m'a aidé à le résoudre (il me manquait la ligne meta http-equiv...).

4voto

Renjith VR Points 1483

Vous devez changer le fichier .html en .php.

et ajoutez la ligne suivante

header('Content-Type: text/html; charset=utf-8');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X