我正在开发一个在创建帐户后向用户发送确认电子邮件的应用程序。我的客户希望具有此功能以便编辑邮件的内容。我已经通过一个带有邮件文本内容的简单SQL表实现了这一点。
但是,我仍然遇到字符编码问题。这种情况: 创建帐户后,PHPMailer会创建并发送一封邮件。内容是从数据库中请求的,并像这样在邮件正文中打印:
<tr>
<td colspan=2 style="text-align:left;">
<br><br>
<span>' . $mailData->intro_french . '</span>
<br><br>
</td>
</tr>
$ mailData-> intro_french是一个包含字符á的字符串:“ BienvenueàReproNet Lite!”。
现在问题开始了。每当此邮件发送到Outlook客户端时,所有特殊字符都会被剥夺。该字符串将显示为:“ Bienvenue ReproNet Lite!”。
但是,当此邮件发送到任何其他客户端(例如Gmail)时,所有特殊字符都会保留并正常显示。
由于这个原因,我认为这将是一个Outlook问题。但是我试图像这样直接将特殊字符打印到邮件中,并且一切正常:
<tr>
<td colspan=2 style="text-align:left;">
<br><br>
<span>Bienvenue á ReproNet Lite!</span>
<br><br>
</td>
</tr>
我已经按照以下步骤在PHPMailer中设置了字符集:
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
我的邮件还具有以下标签:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
邮件内容存储在utf8_general_ci表中。
因此,这似乎是Outlook问题或我的数据库出现问题。我想了解为什么会首先发生这种情况,其次要如何解决此问题。