Â出现在HTML电子邮件中

时间:2013-02-15 13:01:42

标签: php email utf-8

我正在使用以下方式发送PHP电子邮件:

mail($email, $subject, $message, $header);

我将这样的消息布局,其中包含一些价格如下的表:

$message = <<<EOF

<td style=\"border-bottom: 1px solid black; padding-bottom:4px; padding-top:4px; padding-right: 10px; text-align:right;\">£</td>

EOF;

在某些电子邮件客户端上,£显示为£。

我理解这与字符格式有关。但是,如何以这种方式发送PHP电子邮件时设置UTF-8字符集?

TIA

3 个答案:

答案 0 :(得分:3)

将HTML实体用于井号

&pound;

答案 1 :(得分:3)

这是一个比fin1te更通用的解决方案:

$header = array(
    "From: {$email}",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
);
$result = mail($email, $subject, $message, implode("\r\n", $header));

答案 2 :(得分:2)

首先,您可以使用

&pound;

而不是原始£字符。

要设置电子邮件的字符编码,请设置标题:

$from    = 'me@domain.com';
$to      = 'to@domain.com';
$subject = 'Subject';


$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $from . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$message = 'message';

mail($to, $subject, $message, $headers);