Кодировка Joomla UTF-8 не открывается при открытии почты

У меня странная проблема с кодировкой, описанная ниже:

ù теперь отображается как Ã в теме письма. Электронная почта отправляется через функцию php mail.

При просмотре электронной почты в почтовом ящике она отображается правильно. Однако, когда кто-либо открывает электронное письмо, ù внезапно изменяется на ù.

Uw contact met Meeùs 

должно быть

 Uw contact met Meeùs 

Я уже использовал кодировку.

$emailsubject содержит вышеупомянутый вопрос по электронной почте.

 $subject=$emailsubject; $subject=$emailsubject; $email_message=new email_message_class; $email_message->SetEncodedEmailHeader("To",$to_address,$to_name); $email_message->SetEncodedEmailHeader("From",$from_address,$from_name); $email_message->SetEncodedEmailHeader("Reply-To",$reply_address,$reply_name); $email_message->SetHeader("Sender",$from_address); $email_message->SetEncodedHeader("Subject",$subject,"UTF-8"); 

В localhost он работает нормально, но на веб-сервере он работает неправильно. В web-сервере также по умолчанию установлено значение utf-8.

Что я делаю неправильно? Заранее спасибо.

Related of "Кодировка Joomla UTF-8 не открывается при открытии почты"

Ваш код верен, абсолютно нет ошибок, но его другие вещи не могут кодироваться. Как мне нужны заголовки и сообщения источника сообщений, чтобы точно рассказать, что происходит? У меня нет дополнительной информации о том, отправляете ли вы электронное письмо как обычный текст или HTML. Но, как правило, есть две проблемы:

Отсутствует Mime-версия

Причина неправильного отображения символа – разработчики забывают описать сообщение как версию MIME. если в сообщении отсутствует заголовок «Mime-Version», который требуется для стандартов электронной почты Интернета, Webmail полностью игнорирует заголовок «charset», искажая это сообщение, если оно уже не находится в наборе символов UTF-8.

Отображение темы со специальными символами

Поскольку вы хотите показать объект с помощью кодировки utf-8, вы должны закодировать тему следующим образом:

 //Setting the Language as Japan mb_language("ja"); //Converting the string into Japan Encoding $subject = mb_convert_encoding($subject, "ISO-2022-JP","AUTO"); //Now convert the string to MIME Header type $subject = mb_encode_mimeheader($subject); 

Если вышеупомянутые проблемы не решают проблему, попросите вас опубликовать заголовки RAW электронной почты, поскольку это поможет лучше решить проблему.

Вы проверяете изменение кодировки с помощью .htaccess?

 AddDefaultCharset UTF-8 

Поскольку вы указываете в комментариях, что используете Joomla 1.5, кажется, что существует проблема с библиотекой phpmailer() в этой версии, которая заставляет набор символов phpmailer() отправления – отправить сообщение, используя настройку набора символов iso-8559-1 . Чтобы исправить это, откройте основную библиотеку phpmailer() :

[путь к установке Joomla] /libraries/phpmailer/phpmailer.php

Вокруг строки 50 есть настройка под названием $CharSet . Измените это на utf-8 если оно уже не установлено:

  /** * Sets the CharSet of the message. * @var string */ var $CharSet = 'utf-8'; 

Вы также можете выполнить поиск своей кодовой базы Joomla 1.5 для iso-8559-1 чтобы узнать, iso-8559-1 ли компонент или библиотеку кодирование iso-8559-1 где-то в цепочке кода.

И еще один параметр, который я бы рекомендовал проверить, – это $Encoding вокруг строки 63. Значение по умолчанию – 8bit , но мне пришлось корректировать это в прошлом либо с quoted-printable либо с помощью base64 чтобы решить некоторые проблемы с рассылкой по конкретным настройкам, которые я работал на.

  /** * Sets the Encoding of the message. Options for this are "8bit", * "7bit", "binary", "base64", and "quoted-printable". * @var string */ var $Encoding = '8bit'; 

Я предлагаю вам использовать класс почтовой программы joomla, он может выглядеть так:

 $mailer = JFactory::getMailer(); $mailer->setSender(array($from_address,$from_name)); $mailer->addRecipient($to_address, $to_name); $mailer->setSubject($subject); $mailer->setBody("BODY MESSAGE STRING"); $mailer->Send(); 

По умолчанию это utf8, и я не вижу причин, чтобы не использовать его, если вы используете Joomla.