3

我正在使用以下方式发送 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

4

3 回答 3

3

使用 HTML 实体作为井号

&pound;
于 2013-02-15T13:02:44.693 回答
3

首先,您可以使用

&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);
于 2013-02-15T13:04:41.703 回答
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));
于 2013-02-15T13:05:19.740 回答