Я только что провел 2 дня расследования этой проблемы. Наша проблема заключалась в том, что mailto: ссылки на наши веб-страницы, закодированные utf-8, не работали для пользователей Outlook, если строка subject = содержала символы не-ascii, например, норвежские символы. Примером может служить: :
Из того, что я узнал до сих пор, Outlook просто не ничего, кроме ASCII и ISO-8859-1 символов обрабатывать «MAILTO [email protected] Subject = julegløgg ог форикол?». Поэтому, пытаясь щелкнуть по указанной выше ссылке mailto (либо из IE, либо из Firefox), Outlook не сможет декодировать символы, оставив объект сломанным и содержащий «странные» символы.
Итак, следующим шагом было попытаться перекодировать страницы в ISO-8859-1. То, что мы сделали, чтобы заменить оригинальный MailTo ссылку на страницу в кодировке UTF-8 со ссылкой на «электронной почте и по ISO» распложен, как это:
http://url.com/service.php?service=util.mailtoencode&mailto=mail%40coretrek.no%3Fsubject%3Demne+%C3%B8%C3%A6%C3%A5+emne
Эта страница будет преобразовывать символы MailTo на iso-8859-1, а затем выводит содержимое всей страницы в iso-8859-1. Для открытия клиентского почтового клиента автоматически использовался javascript на странице, содержащий «location.href = 'mailto: ...».
До сих пор все казалось ок. Это действительно работает в Internet Explorer, как с Thunderbird, так и с Outlook (тестируется в IE7 на WinXP с Outlook Express и TB 2).
НО проблема теперь на самом деле является Firefox. Похоже, что Firefox не может декодировать url-кодированные URL-адреса, содержащие символы, найденные только в ISO-8859-1, но не в ASCII (например, норвежский å, представленный% E5 при кодировании). Тот же å обрабатывается правильно, если кодировка страницы - utf-8, но, похоже, разработчики Firefox забыли проверить специальные символы вместе с кодировкой ISO-8859-1. В результате Firefox передает не-декодированную строку (по-прежнему содержащую% E5 intestead of å) клиенту электронной почты. И, что удивительно, это правильно обрабатывается Outlook (которому удается декодировать собственно строку), но НЕ от Thunderbird, который, вероятно, имеет ту же ошибку, что и Firefox. Если вы НЕ ЗАКАЗЫВАЕТ кодировку объекта, строка передается правильно Thunderbird, но не Outlook.
Мы также пытались использовать другие методы кодирования, такие как htmlentities php, htmlspecialchars, base64 и т. Д., Но все они терпят неудачу так или иначе.
Итак, кратко:
Страницы закодированные в UTF-8:
IE не удается всегда
FF -> Thunderbird: OK
FF -> Outlook: FAIL
Страницы, закодированные в iso-8859-1:
IE: OK
FF -> Thunderbird: Сбой при объект URL закодирован, хорошо, если нет)
FF -> Outlook: Не удается, если объект не в кодировке URL, хорошо, если закодирован) (это для Windows, на Ubuntu Linux FF и TB работают нормально всегда).
Надеясь, что это было полезно для других, имеющих ту же проблему.
У меня такая же проблема , Можете ли вы выбрать awer или опубликовать свой собственный? – AyexeM