为什么此邮件主题编码不正确? (php邮件)

时间:2010-12-23 23:41:34

标签: php html email encoding utf-8

我使用此代码发送电子邮件:

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '-fnoreply@domain.com'); 

如果我使用瑞典字母表中的特殊字符ÅÄÖ,则它们编码不正确,因此它们会显示为ö for ö

但是,如果我将$to变量更改为Gmail帐户电子邮件,那么就不会发生这种情况。

有人有任何想法吗?

由于

更新:

当我echo $name时,名称会在utf8中正确显示,所有特殊字符都会很好地显示。

1 个答案:

答案 0 :(得分:1)

也许您应该使用iconv将输入文本转换为UTF-8,我认为GMail会为您做到这一点。

$text =  iconv(mb_detect_encoding($text), "UTF-8//IGNORE//TRANSLIT", $text)

另外检查你的PHP页面是Unix UTF-8。

OR

您可以使用phpMailer或libmail