我使用phpmailer发送月度报告。
它包括€符号。因此我需要将编码设置为utf-8。 我在这里碰到了一个问题。
没有这样的编码:
$mail->addStringAttachment($csvstring, $fileName);
邮件已发送,但在附件中,€符号未显示
当我尝试添加编码时:
$mail->addStringAttachment($csvstring, $fileName, "utf-8", "text/csv");
邮件已发送,但正文和附件不存在。 我尝试查找它,但似乎很少有文档。
我错过了明显的吗?
答案 0 :(得分:0)
请参阅:this line in PHPMailer's source code
$mail->CharSet = 'utf-8';
如果要在打开CSV的程序中将CSV读取为UTF-8,请将BOM(Byte Order Marker;即"\\xef\\xbb\\xbf"
)添加到字符串文件内容中。
"\\xef\\xbb\\xbf".$csvstring
<强>更新强>
您也可以这样做。
$mail->addStringAttachment($csvstring, $fileName, "base64", "text/csv; charset=utf-8");
另请参阅MIME Content-Type上的规范,因为它指出了设置编码的正确方法;即,text/csv; charset=utf-8
。
答案 1 :(得分:0)