2011-05-13 69 views
0

之间不同的使用PHP邮件功能通过电子邮件发送形式时,我有一个问题。这是我使用的代码:PHP邮件:特殊字符显示Firefox和IE

$name = $_POST['name']; 
$last_name = $_POST['last_name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$country = $_POST['country']; 
$phone = $_POST['phone']; 
$message = $_POST['message']); //This comes from the form 

$formcontent="Name: $name $last_name <br> Company: $company <br> Email: $email <br> Country: $country <br> Telephone: $phone <br><br> Message: $message"; 

$mailheader = 'MIME-Version: 1.0' . "\r\n"; 
$mailheader .= 'Content-type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable' . "\r\n"; 
$mailheader .= 'From: ' . $email . "\r\n"; 

mail("[email protected]", "subject", $formcontent, $mailheader) or die("Error!"); 

这是将要发送的西班牙和特殊字符,如N,口音形式,c等...

的问题是,如果我这样使用它,它在Firefox 3.6.3中可以正常工作,但是在Internet Explorer 8中使用表单时,发送的特殊字符会全部混乱(如ç而不是ç)。但是,如果我添加函数utf8_encode$ formcontent的变量,那么它在IE浏览器,但它停止工作在Firefox中显示类似于η而不是C的东西。

我能做些什么,使无论是浏览器的工作?任何帮助将非常感激!

编辑:

我发现,如果我邮件发送之前呼应$ formcontent变量,如果我使用的是Firefox,特殊字符已经混乱的。我怎样才能避免浏览器干扰正在发送的内容?请我现在完全无能为力!我不知道该怎么改变才能有所作为。即使这是一个愚蠢的版本,是否有任何其他的PHP邮件在两个浏览器中使用特殊字符?

+0

你的意思是“Internet Explorer”? – 2011-05-13 16:46:31

+0

是啊,当然 – 2011-05-13 16:54:25

回答

0

基本上你需要确保你的页面上的每个字符集是一样的。确保页面有utf-8字符集aswel。既然你用utf8发送它,那么输入必须来自utf8。

你能也许告诉我们在此邮件正在取得的页面的代码(或现场演示)?

+0

@PENDO:谢谢你的回复。我有这在我的网页的头:** **。表单的标签是:**

**。所以我到处看看它说UTF-8 ... – 2011-05-13 17:11:03

+0

是有可能,你的IE浏览器是压倒另一个(ISO-8859为例)字符集 – 2011-05-13 17:20:48

+0

@PENDO:嗯,事情是别人的资源管理器在做同样的...我如何检查这是怎么回事?无论如何,你在我的代码中看到什么奇怪的东西吗?你会这样做吗? – 2011-05-13 17:26:27