2011-01-11 89 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)
相關問題