尽管有utf-8标题和accept-charset,但来自(at-sign)的HTML中的字符集

时间:2012-08-08 16:34:59

标签: php html character-encoding

使用电子邮件登录,我发现HTML表单的字符集存在(可能)问题...

在文档的最顶部,我使用php:

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

在头部我也有:

<meta charset="UTF-8">

甚至在形式本身:

<form accept-charset="utf-8" ...>


但是,在序列化表单时,电子邮件地址将返回如下:

email=my%40email.com

有人知道为什么吗?

2 个答案:

答案 0 :(得分:1)

我认为问题来自PHP脚本中的一些代码,用于过滤表单数据。

答案 1 :(得分:1)

是的,CoursesWeb是对的。使用urldecode($_POST['email']);,它会自动解码其中包含所有%##的字符串。

来自php.net:

  

string urldecode(string $ str)解码给定的任何%##编码   串。加号('+')被解码为空格字符。

(php.net/manual/en/function.urldecode.php)