webForumDet fria alternativet

Hur fixa svenska tecken

.NET

4 svar · 620 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

När jag läser ett mail får jag följande meddelande:

H=E4r kommer lite nya h=E4rliga nyheter fr=E5n Farsta Centrum. 
=A0 
Hoppas alla ni f=E5r en h=E4rlig dag 
// Helene 
=A0 
=A0 
Helene Andersson 
Marknadskoordinator 
=A0 
Atrium Ljungberg AB 
Bes=F6k: Farsta Centrum,=A0Munkforsplan 33 
Box 71, 123 22 Farsta

Vad betyder =A0 och finns det något bra sätt att översätta denna text till vanliga tecken? Jag tycker det här liknar quoted printable men hittar ingen bra översättning från det till vanliga ascii.

Medlem sedan juli 20041 183 inlägg
#2

Nu har jag hittat en lösning. Först plockar jag ut alla =XX tecken:

// If not html and there are quoted strings in the text (hex characters) translate them into Ascii
try {
    while (htmlMail == false && html.IndexOf("=") > 0) {
        string replaceChar = html.Substring(html.IndexOf("=") + 1, 2);
        string newChar = ConvertHexToAscii(replaceChar);
        html = html.Replace("=" + replaceChar, newChar);
    }
}
catch (Exception) {
    // Just ignore the error. It's probably not quoted printable
}

Sen konverterar jag dem en efter en med denna metod

public string ConvertHexToAscii(string Data) {
    string Data1 = "";
    string sData = "";

    while (Data.Length > 0) {
        Data1 = System.Convert.ToChar(System.Convert.ToUInt32(Data.Substring(0, 2), 16)).ToString();
        sData = sData + Data1;
        Data = Data.Substring(2, Data.Length - 2);
    }

    return sData;
}
Medlem sedan mars 20041 505 inlägg
#3

Kodningen kallas Quoted-printable och används oftast i mail.
Hur man konverterar med .NET vet jag inte men det finns säkert bättre sätt än while-loopar ;)

Medlem sedan maj 2009250 inlägg
#4

vill du ha snabbhet i översättningen bör du använda regular Expressions ... det är ruskigt mycket snabbare än loopar

Medlem sedan juli 20041 183 inlägg
#5

Jag såg en lösning där man skapade en instans av ett mail-objekt. Man skickade in texten i mailobjektet och ut kom den konverterade texten. Men jag fick inte till det så jag gjorde på mitt sätt :P

Det handlar också om ett fåtal mail i veckan, så prestanda är inga problem :)

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)