未声明HTML文档的字符编码



当我点击表单的提交按钮时,会出现以下错误消息:

未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。

insert.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;
?>

我不知道我的代码中的问题在哪里。请帮帮我。

将其作为HTML模板的HEAD部分的第一行添加

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

注意:如果<head>和这些元线之间有任何一条线(即使是注释)问题仍然存在,所以请确保添加了元行<head>后直接

我在最基本的情况下也遇到了同样的问题,我的问题通过将这个标签插入文档的头部来解决:

<meta charset="utf-8">

html文档的字符编码(实际上是UTF-8)没有声明。

在这里,在这里,了解更多。

我在Firefox中运行表单应用程序时也遇到了同样的问题。在html代码中添加<meta charset="utf-8"/>解决了我在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>

当你发布时,浏览器只输出$title——所有的HTML标签和doctype都会消失。您需要在insert.php文件中包括这些:

<!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>

您必须将文件从.html更改为php.

并添加以下行

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

您的初始页面是一个完整的HTML页面,包含一个表单,当单击提交按钮时,表单的内容会发布到insert.php,但insert.php需要处理表单的内容并对其进行处理,例如将其添加到数据库中,或将其输出到新页面。您当前的insert.php只是输出标题字段的内容,所以您的浏览器试图将其解释为HTML页面,但显然失败了,因为它不是有效的HTML(即它不包含在"HTML"标记中,等等)

您的insert.php需要输出必要的HTML,并在其中的某个位置插入表单数据。

例如:

<?php 
   $title = $_POST["title"];
   $price = $_POST["price"];
  echo '<html xmlns="http://www.w3.org/1999/xhtml">';
  echo '<head>';
  echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
  echo '<title>';
  echo $title;
  echo '</title>';
  echo '</head>';
  echo '<body>';
  echo 'Hello, world.';
  echo '</body>';
 ?>

最新更新