2011-01-11 5 views
2

Dies ist meine erste Frage zu StackOverflow, also wenn ich etwas falsch mache, wenn ich diese Frage stelle, begrüße ich alle Hinweise, wie ich es stattdessen hätte stellen sollen, oder weitere Informationen benötigt.Verstümmelter Text in Mail-Betreff mit mailto: unter ASP.NET

Ich habe eine kleine ASP.NET/C# Website entwickelt, die Mailto-Links mit einem voreingestellten Betreff/Text generiert. Aus irgendeinem Grund enden meine mailto: -Links jedoch beim Öffnen in Outlook 2003 mit dem Verstopfen nicht standardmäßiger Buchstaben (z. B. ååö). In Outlook 2010 scheint es zu funktionieren.

Sample code (apologize die Swedish):

<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> 

(note dass diese happens auf static links ohne C# variables als well)

Garbled text sample von Outlook 2003 mail window:

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

Ich habe UTF-8-Codierung in der Web.config angegeben, aber ich nehme an, das ist nicht das Problem. Ich muss wahrscheinlich die Kodierung im Betreff selbst angeben, bin mir aber nicht sicher, wie das geht.

Bearbeiten: Es scheint, Outlook 2003 hat eine harte Zeit UTF-8 Mailto Support zu behandeln. Siehe zum Beispiel this Frage. Outlook 2010 hat einen expliziten "UTF-8-Unterstützung für Mailto-Protokoll" Schalter unter Optionen. 2003 fehlt das. Irgendwelche Ideen, wie man das umgehen kann? UrlEncoding() scheint nicht zu helfen.

+1

Try UrlEncode() – leppie

+0

Ja, die sweedish Zeichen sind nicht von der Textkodierung gemocht zu werden ... – jchapa

+0

meine Antwort aktualisiert –

Antwort

3

Stellen Sie sicher, die Zeichenkodierung gesetzt haben

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

am oberen Rand der Seite angezeigt werden soll - mit charset= Satz unabhängig von Zeichensatz schwedischen Gebrauch (Google hat mich führen ISO-8859, zu glauben, -1)

Nehmen Sie eine look here, die eine JavaScript-Funktion verwendet, um die Zeichen korrekt zu entkommen. Ich glaube, HttpUtility.UrlEncode(String) innerhalb des Codes hinter wird auch den gleichen Effekt haben.

Hat Outlook vielleicht eine andere Codierung angegeben?

EDIT:

gefunden this here

In Versionen von Outlook vor der 2007-Version würde Outlook übernehmen die System-Codepage der URI zu kodieren verwendet worden war. Das bedeutet, dass dieses Szenario nur mit älteren Versionen von Outlook funktionieren würde, wenn das Dokument , das Sie anzeigen, das gleiche Zeichen hat Codierung als Ihr aktuelles System Codepage.

Dies scheint auf das Problem hinweisen, dass die System-Codepage nicht Schwedisch ist (ISO-8859-1), um das Mittel, um die Situation zu sein scheint:

  • Outlook-Upgrade
  • Change System Encoding ISO-8859-1 (der Outlook-Client thats, ausgeführt wird)
+0

Hallo und danke für die Antwort. Ich habe UrlEncode() verwendet und der Zeichensatz ist korrekt eingestellt, aber das Problem bleibt bestehen. Allerdings habe ich gerade festgestellt, dass die Person, die den Fehler unter Outlook 2010 berichtet tatsächlich verwendet 2003. Nach einigen Recherchen scheint es das Problem nur unter Outlook 2003 und nicht 2010. –

+0

Erraten der Zeichencodierung für Outlook 2003 ist nicht utf-8 dann –

+0

Siehe meine bearbeitete Frage. –