Thomas Bandt

Über mich | Kontakt | Archiv

Encode To ASCII - Buchstaben in Ascii-Werte umwandeln

Vor Kurzem kam in einer Mailingliste die Frage auf, wie man einen beliebigen Text in dessen entsprechende ASCII-Werte umwandeln kann.

Hier eine Funktion in VBScript, die ich vor ein paar Jahren dazu geschrieben habe:

Function MailCrypt(strMail)
    Dim a, x, i
        x = Len(strMail)
        For i = 1 To x
            a = a & "&#" & Asc(Mid(strMail,i,1)) & ";"
        Next
    MailCrypt = a
End Function

Und hier das C#-Pendant:

public static string EncodeToAscii(string input)
{
   StringBuilder output = new StringBuilder(string.Empty);
   if (!string.IsNullOrEmpty(input))
   {
      for (int i = 0; i < input.Length; i++)
         output.AppendFormat("&#{0};"
            
Encoding.ASCII.GetBytes(input.Substring(i, 1))[0]);
   }
   return output.ToString();
}

Das Ganze hat sich im Übrigen als sehr erfolgreiches Mittel gegen Spam-Bots bewährt, auch wenn man es kaum glauben mag, weil es zu simpel erscheint. Aber ich habe es seit mehreren Jahren auf einigen hoch frequentierten Seiten im Einsatz, und ein angenehm geringes Spamaufkommen auf die dort so veröffentlichten Mailadressen.

Kommentare

  1. ChristianH schrieb am Montag, 6. Februar 2006 21:12:00 Uhr:

    Hy Thomas,

    cewl, so einfach und doch wirksaam. nicht schlecht :-)


    Gruss Christian
  2. Erich schrieb am Donnerstag, 9. Februar 2006 21:07:00 Uhr:

    Hi Thomas,

    ich suche sowas in der Art bei einer SoapException in Visual Basic .NET. Da bekomme ich bei meiner try-catch Methode im catch-Bereich einen Fehlerstring mit Umlauten zurück. Diesen würde ich gerne xml-konform per soap an den client zurück schicken.

    leider hängt sich die übermittlung an den umlauten auf.
    ich hab es schon mit utf8 codierung probiert, aber das klappt irgendwie nicht so recht, weil da anscheinend integer u. strings gemischt zurück kommen.

    hast du dafür einen tipp?

    gruß erich
  3. Miguel schrieb am Dienstag, 26. Juni 2007 16:32:00 Uhr:

    testen


« Zurück  |  Weiter »