我只是通过HTML表单调用一个简单的PHP脚本。
每次都会抛出错误:“未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则文档将在某些浏览器配置中使用乱码文本呈现。必须在文档或传输协议“
中声明页面的编码我已经在PHP和HTML中定义了UTF-8编码(请参考下面的代码)。尽管在网上搜索,我仍然无法解决这个问题。
<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>
header("Content-type: text/html; charset=UTF-8");
print "<pre>";
print_r($_GET);
print "</pre>";
提交按钮后的结果(以及错误)是:
我正在使用XAMPP。我尝试编辑 .htaccess (添加:AddType'text / html; charset = UTF-8'html),如某些互联网解决方案中的建议,但这也无济于事。
我找到了一个网站,其中有一个简单的表单再次调用PHP脚本。 http://www.tjhsst.edu/~dhyatt/superap/form1.html。当我尝试在表单中提交值时,我得到相同的错误。
所以我想,这可能是一个浏览器问题,我将浏览器的默认编码更改为UTF-8。但这也没有帮助。
我是网络编程的新手并且正在努力学习。感谢任何人可以提供帮助。
谢谢, Ashutosh说
答案 0 :(得分:3)
看起来您在打开/关闭代码时遇到了一些问题。
确保您的<?php
中包含?>
和process1.php3
的php代码(有些详细信息:http://php.net/manual/en/language.basic-syntax.phpmode.php)
像这里:
<?php
header("Content-type: text/html; charset=UTF-8");
print "<pre>";
print_r($_GET);
print "</pre>";
?>
<强> UPD:强>
经过长时间的问答后,OP终于出现了使用file://
协议打开带有表单的文件。与file:///C:/xampp/htdocs/example/form.html
类似,表单已提交给file:///C:/xampp/htdocs/example/google1.php?...
由于apache仅适用于HTTP协议,因此实际上并未执行PHP。
答案 1 :(得分:0)
您的密码:
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
正确代码:
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
你忘记在元标记的末尾添加斜杠。您尚未关闭元标记 虽然,它并不是非常关键,因为你已经尝试了一切。试试这个吧。它可能适合你。