2011-01-11 88 views
2

这是我在StackOverflow上的第一个问题,所以如果我在问这个问题时做错了什么,我欢迎任何关于我应该如何摆放它的指针,或者需要更多的信息。使用mailto在邮件主题中出现乱码文本:在ASP.NET

我开发了一个小ASP.NET/C#网站,它生成与预设主题/正文邮件链接。但是,由于某些原因,我的mailto:链接在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 mailto支持方面有困难。请参阅this问题。 Outlook 2010在选项下有一个明确的“对mailto协议的UTF-8支持”开关。 2003缺少这个。任何想法如何解决这个问题? UrlEncoding()似乎没有帮助。

+1

尝试以UrlEncode() – leppie 2011-01-11 08:53:01

+0

呀,瑞典文字符不是由文字编码喜欢... – jchapa 2011-01-11 08:55:07

回答

3

请确保您有字符编码集

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

应该出现在你的页面的顶部 - 与charset=设置为任何字符集瑞典使用(谷歌已经使我相信ISO-8859 -1

乘坐look here这似乎是使用JavaScript函数来正确地逃脱字符。相信HttpUtility.UrlEncode(String)之内的代码背后也会有同样的效果。

后市是否有可能指定了不同的编码?

编辑:

找到this here

在之前的2007年 版本的Outlook版本中,Outlook将承担 系统代码页已被用于 编码的URI。这意味着,如果您正在查看的文档 与编码为当前系统 的代码页具有相同字符 ,则此 方案只适用于Outlook的较早版本 。

这似乎指向系统代码页未使用瑞典语(ISO-8859-1),因此补救措施的情况这个问题似乎是:

  • 升级Outlook
  • 更改系统编码为ISO-8859-1(客户端多数民众赞成在运行Outlook)
相关问题