Искаженный текст в теме письма с использованием mailto: под ASP.NET - PullRequest
2 голосов
/ 11 января 2011

Это мой первый вопрос о StackOverflow, поэтому, если я что-то не так делаю, когда задаю этот вопрос, я приветствую любые указания относительно того, как я должен был его изложить, или любую дополнительную информацию, необходимую.

Я разработал небольшой сайт ASP.NET/C#, который генерирует почтовые ссылки с предустановленной темой / телом. Однако по какой-то причине мои ссылки mailto: -l приводят к искажению нестандартных букв (например, текстовых) при открытии в Outlook 2003. В Outlook 2010 это похоже на работу.

Пример кода (прошу прощения у шведского):

<a href='mailto:" + emails + "?subject=Inflödning till " + language + 
 " för jobb nr " + projectID + " är klar. Tidsåtgång: " + time + "'>
Skicka mail till PL?</a>

(обратите внимание, что это также происходит со статическими ссылками без переменных C #)

Пример искаженного текста из почтового окна Outlook 2003:

Inflödning till en för jobb nr 111111 är klar. Tidsåtgång: 1

Я указал кодировку UTF-8 в файле Web.config, но я предполагаю, что это не проблема. Возможно, мне придется указать кодировку в самой теме, но я не уверен, как это сделать.

Редактировать: Казалось бы, Outlook 2003 трудно справиться с поддержкой mailto UTF-8. См. Например этот вопрос. В Outlook 2010 есть явный переключатель «Поддержка почтового протокола в UTF-8» под опциями. 2003 не хватает этого. Есть идеи как обойти это? UrlEncoding (), похоже, не помогает.

1 Ответ

3 голосов
/ 11 января 2011

Убедитесь, что установлена ​​кодировка символов

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Должен появиться в верхней части вашей страницы - с charset=, установленным на любой набор символов, используемый в Швеции (Google заставил меня поверить, ISO-8859-1 )

Взгляните , посмотрите здесь , который, кажется, использует функцию javascript для правильного экранирования символов. Я полагаю, что HttpUtility.UrlEncode (String) внутри кода также будет иметь тот же эффект.

Возможно, в outlook указана другая кодировка?

EDIT:

Найдено это здесь

В версиях Outlook до Версии 2007, Outlook будет принимать Системная кодовая страница была использована для закодировать URI. Это означает, что это сценарий будет работать только со старшими версии Outlook, если документ Вы просматриваете, имеет тот же характер кодирование как ваша текущая система кодовая.

Казалось бы, это указывает на проблему, заключающуюся в том, что системная кодовая страница НЕ использует шведский язык (ISO-8859-1), поэтому исправление ситуации выглядит следующим образом:

  • Обновление Outlook
  • Изменить системную кодировку на ISO-8859-1 (клиент под управлением Outlook)
...