使用电子邮件登录,我发现HTML表单的字符集(可能)存在问题...
在文档的最顶部,我将php用于:
header('Content-type: text/html; charset=utf-8');
在标题部分,我还有:
<meta charset="UTF-8">
甚至在形式本身:
<form accept-charset="utf-8" ...>
但是,在序列化表单时,将返回电子邮件地址,如下所示:
email=my%40email.com
有人知道为什么吗?
是的,CoursesWeb是对的。使用 urldecode($_POST['email']);
,它将自动解码包含所有%##
的字符串。
从 php.net:
字符串 urldecode ( 字符串 $str ) 解码给定中的任何 %## 编码 字符串。加号("+")被解码为空格字符。
(php.net/manual/en/function.urldecode.php)
我认为
问题出在 PHP 脚本中过滤表单数据的某些代码上。