使用mailto:在ASP.NET下的邮件主题中的乱码文本

时间:2011-01-11 08:35:13

标签: html asp.net .net outlook ms-office

这是我关于StackOverflow的第一个问题,所以如果我在提出这个问题时做错了什么,我欢迎任何关于我应该如何提出它的指示,或者需要任何进一步的信息。

我开发了一个小型ASP.NET / C#站点,它可以生成带有预设主题/正文的mailto-links。但是出于某种原因,我的mailto:-links在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

我在Web.config中指定了UTF-8编码,但我假设这不是问题。我可能必须在主题中指定编码,但我不确定如何做到这一点。

编辑:看起来Outlook 2003很难处理UTF-8邮件支持。请参阅示例this问题。 Outlook 2010在选项下有一个明确的“对mailto协议的UTF-8支持”开关。 2003年失踪了。关于如何解决这个问题的任何想法? UrlEncoding()似乎没有帮助。

1 个答案:

答案 0 :(得分:3)

确保您拥有字符编码集

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

应显示在页面顶部 - 将charset=设置为瑞典语使用的任何字符集(Google让我相信 ISO-8859-1

使用似乎使用javascript函数的look here来正确转义字符。我相信后面代码中的HttpUtility.UrlEncode(String)也会产生同样的效果。

outlook是否可能指定了不同的编码?

编辑:

找到this here

  

在之前的Outlook版本中   2007版本,Outlook将承担   系统代码页已经习惯了   编码URI。这意味着这一点   场景只适用于旧版本   Outlook的版本,如果是文档   你正在观看的角色相同   编码为您当前的系统   代码页。

这似乎表明系统代码页没有使用瑞典语(ISO-8859-1)的问题,所以对情况的补救措施似乎是:

  • 升级Outlook
  • 将系统编码更改为ISO-8859-1(运行Outlook的客户端)