нечитаемые символы почты - юникод - PullRequest
4 голосов
/ 10 ноября 2011

Я использую схему mailto URI на своем веб-сайте для отправки по электронной почте текущей страницы.

Проблема в том, что я использую хинди в качестве темы в ссылке mailto

Пример

<a href="mailto:test@gmail.com?subject=मानक हिन्दी">Testing</a>

При нажатии на ссылку открывается Outlook (версия 6), в котором в качестве темы отображаются нечитаемые символы вместо " मानक हिन्दी ", т.е. я получаю " 'à'®à¤¤à¤¨à¤ • à¤¹à¤¿à¤¨à ¥ à¤¦à ¥ €"

Я использую PHP, поэтому я попытался использовать urlencode, utf8_encode и другие подобные функции, и этобесполезно.И набор символов по умолчанию страницы UTF-8

Когда я непосредственно вставляю текст मानक हिन्दी , это работает.

Но мне нужно это как ссылка на почту ... Каким будет решение?

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

К сожалению, это можно исправить только в конце Outlook, установив опцию «Разрешить поддержку UTF-8 для протокола mailto:».(В 2010 году это находится в разделе «Параметры» -> «Дополнительно» -> «Международные параметры».)

В противном случае и по умолчанию Outlook будет использовать кодировку по умолчанию для рабочего стола конкретного пользователя (кодовую страницу «ANSI»), которая никогда не применяется.UTF-8.Это делает использование не-ASCII символов в URL mailto: настолько ненадежным, что фактически бесполезно.(Даже больше, чем обычная ненадежность subject=.)

В целом идея URL-кодирования не-ASCII-строки была правильной: использовать такой URI, как:

<a href="mailto:test@gmail.com?subject=%E0%A4%AE%E0%A4%BE%E0%A4%A8%E0%A4%95%20%E0%A4%B9%E0%A4%BF%E0%A4%A8%E0%A5%8D%E0%A4%A6%E0%A5%80">Testing</a>

Надежнее, чем формат IRI с необработанным Unicode.Однако это не решает проблему Outlook.

0 голосов
/ 07 декабря 2011

Как сказал Бобинс, у Outlook есть свои ограничения.Microsoft имеет опубликованную документацию , в которой говорится, что правильно настроенные Outlook 2003 и 2007, подключенные к правильно настроенному серверу Exchange, по умолчанию будут поддерживать Unicode, но это не очень помогает широкой публике.

Для справки, «стандарт», на который вы хотите сослаться, это: RFC 2047 .

Решение, которое я реализовал, чтобы обойти это ограничение (только с европейскими языками и акцентами,не так экзотично, как хинди) использовать веб-форму вместо ссылки mailto :.Это требует больше настроек на стороне сервера, но дает вам гораздо больший контроль над процессом контакта.

0 голосов
/ 10 ноября 2011

В старых версиях, насколько мне известно, используется локальная кодировка вместо Unicode для электронных писем, поэтому любая строка Unicode будет зашифрована - может быть опция для установки кодировки для mailto - но не уверен

...