1

我只是通过 HTML 表单调用一个简单的 PHP 脚本。

每次都会抛出错误: “未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则在某些浏览器配置中,文档将呈现乱码。页面的字符编码必须为在文档或传输协议中声明”

我已经将 PHP 和 HTML 中的编码都定义为 UTF-8(请参阅下面的代码)。尽管搜索了整个网络,但我无法解决这个问题。

HTML 代码:

<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
    <meta content="UTF-8" http-equiv="encoding"/>
    <title>Test</title>
</head>

<body>
    <div align="center">
    <form action= "google1.php" method="get" accept-charset="UTF-8" >
             Enter Your Name:
            <INPUT TYPE = "text" NAME = "student"> <BR>
            <!--input name="q" type="text"-->
            <br/ > 
            <input name="btnG" type="submit"  value ="test">
        </form>
    </div>
</body>

PHP 代码

header("Content-type: text/html; charset=UTF-8");
print "<pre>";
print_r($_GET);
print "</pre>";

提交按钮后的结果(连同错误)是:

"; print_r($_GET); 打印 ""; ?>

我正在使用 XAMPP。我尝试按照互联网上的一些解决方案中的建议编辑.htaccess(添加:AddType 'text/html; charset=UTF-8' html),但这也无济于事。

我找到了一个站点,其中有一个简单的表单,它再次调用 PHP 脚本。http://www.tjhsst.edu/~dhyatt/superap/form1.html。当我尝试在表单中提交值时,我得到了同样的错误。

所以我想,这可能是浏览器问题,我将浏览器的默认编码更改为 UTF-8。但这也无济于事。

我是网络编程的新手并正在努力学习。感谢任何人可以提供帮助。

谢谢,阿舒托什

4

2 回答 2

3

看起来您在打开/关闭标签方面遇到了一些问题。

确保您的 php 代码包含在您的(一些详细信息: http: //php.net/manual/en/language.basic-syntax.phpmode.php<?php )中,如下所示:?>process1.php3

<?php
   header("Content-type: text/html; charset=UTF-8");
   print "<pre>";
   print_r($_GET);
   print "</pre>";
?>

升级版:

经过长时间的提问/回答后,最终出现 OP 正在使用file://协议打开带有表单的文件。Likefile:///C:/xampp/htdocs/example/form.html和 form 被提交到file:///C:/xampp/htdocs/example/google1.php?...由于 apache 只使用 HTTP 协议,PHP 并没有实际执行。

于 2012-12-25T13:05:40.493 回答
0

您的代码:
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">

正确代码:
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />

您忘记在元标记的末尾加上斜线。您尚未关闭元标记。
虽然,它不是很重要,因为你已经尝试了一切。也试试这个。它可能对你有用。

于 2012-12-25T13:34:08.073 回答