我使用此代码发送电子邮件:
$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中正确显示,所有特殊字符都会很好地显示。
答案 0 :(得分:1)
也许您应该使用iconv将输入文本转换为UTF-8,我认为GMail会为您做到这一点。
$text = iconv(mb_detect_encoding($text), "UTF-8//IGNORE//TRANSLIT", $text)
另外检查你的PHP页面是Unix UTF-8。
OR
您可以使用phpMailer或libmail