Outlook пропускает такие символы, как (ë, ê, é) - PullRequest
0 голосов
/ 17 апреля 2019

Я работаю над приложением, которое отправляет подтверждение по электронной почте пользователю при создании аккаунта. Мой клиент хочет иметь функциональность для редактирования содержимого почты. Я понял это с помощью простой таблицы 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 или что-то с моей базой данных, возможно. Я хотел бы узнать, почему это происходит во-первых, а во-вторых, как я могу решить эту проблему.

...