我正在使用以下方式发送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
答案 0 :(得分:3)
将HTML实体用于井号
£
答案 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)
首先,您可以使用
£
而不是原始£
字符。
要设置电子邮件的字符编码,请设置标题:
$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);