2010-01-20 22 views
3

Je souhaite convertir une adresse de courrier électronique en caractères d'échappement HTML afin d'essayer d'éviter d'être interceptée par des robots spammeurs. Comme mentionné dans this question:Méthode .Net pour la conversion de chaîne en caractères d'échappement HTML

Lorsque vous placez des adresses e-mail sur une page Web -vous les placer sous forme de texte comme ceci:

[email protected] 

ou utiliser une astuce pour essayer de tromper l'adresse e-mail Arracheuse les bots? Pour exemple:

HTML Caractères d'échappement:

joe.somebody@company.com 

Je ne peux pas trouver une méthode .Net pour le faire bien. Le Html.Encode ne fait que les caractères HTML invalides tels que £ $%^& et non des lettres.

Une méthode existe-t-elle ou dois-je écrire la mienne?

Merci beaucoup

+1

Bien que votre effort est digne, et cela peut protéger votre adresse de certains bots, il ne trompera pas beaucoup et les adresses seront sur les listes en un rien de temps. – overslacked

+0

J'espère que cela va aider un peu. C'est essayer d'en tirer le meilleur parti comme les autres méthodes (en faire une image, cacher l'adresse et ainsi de suite) Je ne suis pas enthousiaste. – Damien

+0

Damien - le problème est que les listes sont achetées et vendues. Dès que vous finissez sur un, c'est fini. – overslacked

Répondre

2

Je ne suis pas au courant de quoi que ce soit inclus dans le cadre, mais vous pourrait essayer quelque chose comme ça?

public string ConvertToHtmlEntities(string plainText) 
{ 
    StringBuilder sb = new StringBuilder(plainText.Length * 6); 
    foreach (char c in plainText) 
    { 
     sb.Append("&#").Append((ushort)c).Append(';'); 
    } 
    return sb.ToString(); 
} 
+0

Merci! Donc, c'est $ # + code numérique? Excellent. – Damien

3

Je pense que vous pouvez utiliser

HttpUtility.HtmlEncode

voir aussi ici: http://msdn.microsoft.com/en-us/library/73z22y6h.aspx

+0

Ouais. À votre santé. Mais comme mentionné cette méthode ne fait que des caractères HTML invalides et non des lettres ou des chiffres. Il n'a fondamentalement aucun effet de l'e-mail dans la source html. – Damien

+0

Oh ok, alors je vous ai mal compris. Pardon. –

+0

Np. Bienvenue à SO par la façon :) – Damien

1

Non, mais il est assez facile d'écrire un ...

Public Shared Function HtmlEncodeAll(ByVal Value As String) As String 
    Dim Builder As New StringBuilder() 

    For Each Chr As Char In Value 
     Builder.Append("&#") 
     Builder.Append(Convert.ToInt32(Chr)) 
     Builder.Append(";") 
    Next 

    Return Builder.ToString() 
End Function 
1
public static asciitable getascii() 
    { 
     asciitable ascii = new asciitable(); 
     ascii.AddasciiRow("0", "NUL", "�", ""); 
     ascii.AddasciiRow("1", "SOH", "", ""); 
     ascii.AddasciiRow("2", "STX", "", ""); 
     ascii.AddasciiRow("3", "ETX", "", ""); 
     ascii.AddasciiRow("4", "EOT", "", ""); 
     ascii.AddasciiRow("5", "ENQ", "", ""); 
     ascii.AddasciiRow("6", "ACK", "", ""); 
     ascii.AddasciiRow("7", "BEL", "", ""); 
     ascii.AddasciiRow("8", "BS", "", ""); 
     ascii.AddasciiRow("9", "HT", "	", ""); 
     ascii.AddasciiRow("10", "LF", "
", ""); 
     ascii.AddasciiRow("11", "VT", "", ""); 
     ascii.AddasciiRow("12", "FF", "", ""); 
     ascii.AddasciiRow("13", "CR", "
", ""); 
     ascii.AddasciiRow("14", "SO", "", ""); 
     ascii.AddasciiRow("15", "SI", "", ""); 
     ascii.AddasciiRow("16", "DLE", "", ""); 
     ascii.AddasciiRow("17", "DC1", "", ""); 
     ascii.AddasciiRow("18", "DC2", "", ""); 
     ascii.AddasciiRow("19", "DC3", "", ""); 
     ascii.AddasciiRow("20", "DC4", "", ""); 
     ascii.AddasciiRow("21", "NAK", "", ""); 
     ascii.AddasciiRow("22", "SYN", "", ""); 
     ascii.AddasciiRow("23", "ETB", "", ""); 
     ascii.AddasciiRow("24", "CAN", "", ""); 
     ascii.AddasciiRow("25", "EM", "", ""); 
     ascii.AddasciiRow("26", "SUB", "", ""); 
     ascii.AddasciiRow("27", "ESC", "", ""); 
     ascii.AddasciiRow("28", "FS", "", ""); 
     ascii.AddasciiRow("29", "GS", "", ""); 
     ascii.AddasciiRow("30", "RS", "", ""); 
     ascii.AddasciiRow("31", "US", "", ""); 
     ascii.AddasciiRow("32", " ", " ", " "); 
     ascii.AddasciiRow("33", "!", "!", "!"); 
     ascii.AddasciiRow("34", Convert.ToChar(34).ToString(), """, """); 
     ascii.AddasciiRow("35", "#", "#", "#"); 
     ascii.AddasciiRow("36", "$", "$", "$"); 
     ascii.AddasciiRow("37", "%", "%", "%"); 
     ascii.AddasciiRow("38", "&", "&", "&"); 
     ascii.AddasciiRow("39", "'", "'", "'"); 
     ascii.AddasciiRow("40", "(", "(", "("); 
     ascii.AddasciiRow("41", ")", ")", ")"); 
     ascii.AddasciiRow("42", "*", "*", "*"); 
     ascii.AddasciiRow("43", "+", "+", "+"); 
     ascii.AddasciiRow("44", ",", ",", ","); 
     ascii.AddasciiRow("45", "-", "-", "-"); 
     ascii.AddasciiRow("46", ".", ".", "."); 
     ascii.AddasciiRow("47", "/", "/", "/"); 
     ascii.AddasciiRow("48", "0", "0", "0"); 
     ascii.AddasciiRow("49", "1", "1", "1"); 
     ascii.AddasciiRow("50", "2", "2", "2"); 
     ascii.AddasciiRow("51", "3", "3", "3"); 
     ascii.AddasciiRow("52", "4", "4", "4"); 
     ascii.AddasciiRow("53", "5", "5", "5"); 
     ascii.AddasciiRow("54", "6", "6", "6"); 
     ascii.AddasciiRow("55", "7", "7", "7"); 
     ascii.AddasciiRow("56", "8", "8", "8"); 
     ascii.AddasciiRow("57", "9", "9", "9"); 
     ascii.AddasciiRow("58", ":", ":", ":"); 
     ascii.AddasciiRow("59", ";", "&#59;", ";"); 
     //ascii.AddasciiRow("60", "<", "&#60;", "&lt;"); 
     ascii.AddasciiRow("60", "<", "&#60;", "<"); 
     ascii.AddasciiRow("61", "=", "&#61;", "="); 
     //ascii.AddasciiRow("62", ">", "&#62;", "&gt;"); 
     ascii.AddasciiRow("62", ">", "&#62;", ">"); 
     ascii.AddasciiRow("63", "?", "&#63;", "?"); 
     ascii.AddasciiRow("64", "@", "&#64;", "@"); 
     ascii.AddasciiRow("65", "A", "&#65;", "A"); 
     ascii.AddasciiRow("66", "B", "&#66;", "B"); 
     ascii.AddasciiRow("67", "C", "&#67;", "C"); 
     ascii.AddasciiRow("68", "D", "&#68;", "D"); 
     ascii.AddasciiRow("69", "E", "&#69;", "E"); 
     ascii.AddasciiRow("70", "F", "&#70;", "F"); 
     ascii.AddasciiRow("71", "G", "&#71;", "G"); 
     ascii.AddasciiRow("72", "H", "&#72;", "H"); 
     ascii.AddasciiRow("73", "I", "&#73;", "I"); 
     ascii.AddasciiRow("74", "J", "&#74;", "J"); 
     ascii.AddasciiRow("75", "K", "&#75;", "K"); 
     ascii.AddasciiRow("76", "L", "&#76;", "L"); 
     ascii.AddasciiRow("77", "M", "&#77;", "M"); 
     ascii.AddasciiRow("78", "N", "&#78;", "N"); 
     ascii.AddasciiRow("79", "O", "&#79;", "O"); 
     ascii.AddasciiRow("80", "P", "&#80;", "P"); 
     ascii.AddasciiRow("81", "Q", "&#81;", "Q"); 
     ascii.AddasciiRow("82", "R", "&#82;", "R"); 
     ascii.AddasciiRow("83", "S", "&#83;", "S"); 
     ascii.AddasciiRow("84", "T", "&#84;", "T"); 
     ascii.AddasciiRow("85", "U", "&#85;", "U"); 
     ascii.AddasciiRow("86", "V", "&#86;", "V"); 
     ascii.AddasciiRow("87", "W", "&#87;", "W"); 
     ascii.AddasciiRow("88", "X", "&#88;", "X"); 
     ascii.AddasciiRow("89", "Y", "&#89;", "Y"); 
     ascii.AddasciiRow("90", "Z", "&#90;", "Z"); 
     ascii.AddasciiRow("91", "[", "&#91;", "["); 
     ascii.AddasciiRow("92", @"\", "&#92;", @"\"); 
     ascii.AddasciiRow("93", "]", "&#93;", "]"); 
     ascii.AddasciiRow("94", "^", "&#94;", "^"); 
     ascii.AddasciiRow("95", "_", "&#95;", "_"); 
     ascii.AddasciiRow("96", "`", "&#96;", "`"); 
     ascii.AddasciiRow("97", "a", "&#97;", "a"); 
     ascii.AddasciiRow("98", "b", "&#98;", "b"); 
     ascii.AddasciiRow("99", "c", "&#99;", "c"); 
     ascii.AddasciiRow("100", "d", "&#100;", "d"); 
     ascii.AddasciiRow("101", "e", "&#101;", "e"); 
     ascii.AddasciiRow("102", "f", "&#102;", "f"); 
     ascii.AddasciiRow("103", "g", "&#103;", "g"); 
     ascii.AddasciiRow("104", "h", "&#104;", "h"); 
     ascii.AddasciiRow("105", "i", "&#105;", "i"); 
     ascii.AddasciiRow("106", "j", "&#106;", "j"); 
     ascii.AddasciiRow("107", "k", "&#107;", "k"); 
     ascii.AddasciiRow("108", "l", "&#108;", "l"); 
     ascii.AddasciiRow("109", "m", "&#109;", "m"); 
     ascii.AddasciiRow("110", "n", "&#110;", "n"); 
     ascii.AddasciiRow("111", "o", "&#111;", "o"); 
     ascii.AddasciiRow("112", "p", "&#112;", "p"); 
     ascii.AddasciiRow("113", "q", "&#113;", "q"); 
     ascii.AddasciiRow("114", "r", "&#114;", "r"); 
     ascii.AddasciiRow("115", "s", "&#115;", "s"); 
     ascii.AddasciiRow("116", "t", "&#116;", "t"); 
     ascii.AddasciiRow("117", "u", "&#117;", "u"); 
     ascii.AddasciiRow("118", "v", "&#118;", "v"); 
     ascii.AddasciiRow("119", "w", "&#119;", "w"); 
     ascii.AddasciiRow("120", "x", "&#120;", "x"); 
     ascii.AddasciiRow("121", "y", "&#121;", "y"); 
     ascii.AddasciiRow("122", "z", "&#122;", "z"); 
     ascii.AddasciiRow("123", "{", "&#123;", "{"); 
     ascii.AddasciiRow("124", "|", "&#124;", "|"); 
     ascii.AddasciiRow("125", "}", "&#125;", "}"); 
     ascii.AddasciiRow("126", "~", "&#126;", "~"); 
     ascii.AddasciiRow("127", "", "&#127;", ""); 
     ascii.AddasciiRow("128", "€", "&#128;", "&euro;"); 
     ascii.AddasciiRow("129", "", "", ""); 
     ascii.AddasciiRow("130", "‚", "&#130;", "&sbquo;"); 
     ascii.AddasciiRow("131", "ƒ", "&#131;", "&fnof;"); 
     ascii.AddasciiRow("132", "„", "&#132;", "&bdquo;"); 
     ascii.AddasciiRow("133", "…", "&#133;", "&hellip;"); 
     ascii.AddasciiRow("134", "†", "&#134;", "&dagger;"); 
     ascii.AddasciiRow("135", "‡", "&#135;", "&Dagger;"); 
     ascii.AddasciiRow("136", "ˆ", "&#136;", "&circ;"); 
     ascii.AddasciiRow("137", "‰", "&#137;", "&permil;"); 
     ascii.AddasciiRow("138", "Š", "&#138;", "&Scaron;"); 
     ascii.AddasciiRow("139", "‹", "&#139;", "&lsaquo;"); 
     ascii.AddasciiRow("140", "Œ", "&#140;", "&OElig;"); 
     ascii.AddasciiRow("141", "", "", ""); 
     ascii.AddasciiRow("142", "Ž", "&#142;", ""); 
     ascii.AddasciiRow("143", "", "", ""); 
     ascii.AddasciiRow("144", "", "", ""); 
     ascii.AddasciiRow("145", "‘", "&#145;", "&lsquo;"); 
     ascii.AddasciiRow("146", "’", "&#146;", "&rsquo;"); 
     ascii.AddasciiRow("147", "“", "&#147;", "&ldquo;"); 
     ascii.AddasciiRow("148", "”", "&#148;", "&rdquo;"); 
     ascii.AddasciiRow("149", "•", "&#149;", "&bull;"); 
     ascii.AddasciiRow("150", "–", "&#150;", "&ndash;"); 
     ascii.AddasciiRow("151", "—", "&#151;", "&mdash;"); 
     ascii.AddasciiRow("152", "˜", "&#152;", "&tilde;"); 
     ascii.AddasciiRow("153", "™", "&#153;", "&trade;"); 
     ascii.AddasciiRow("154", "š", "&#154;", "&scaron;"); 
     ascii.AddasciiRow("155", "›", "&#155;", "&rsaquo;"); 
     ascii.AddasciiRow("156", "œ", "&#156;", "&oelig;"); 
     ascii.AddasciiRow("157", "", "", ""); 
     ascii.AddasciiRow("158", "ž", "&#158;", ""); 
     ascii.AddasciiRow("159", "Ÿ", "&#159;", "&yuml;"); 
     ascii.AddasciiRow("160", "", "&#160;", "&nbsp;"); 
     ascii.AddasciiRow("161", "¡", "&#161;", "&iexcl;"); 
     ascii.AddasciiRow("162", "¢", "&#162;", "&cent;"); 
     ascii.AddasciiRow("163", "£", "&#163;", "&pound;"); 
     ascii.AddasciiRow("164", "¤", "&#164;", "&curren;"); 
     ascii.AddasciiRow("165", "¥", "&#165;", "&yen;"); 
     ascii.AddasciiRow("166", "¦", "&#166;", "&brvbar;"); 
     ascii.AddasciiRow("167", "§", "&#167;", "&sect;"); 
     ascii.AddasciiRow("168", "¨", "&#168;", "&uml;"); 
     ascii.AddasciiRow("169", "©", "&#169;", "&copy;"); 
     ascii.AddasciiRow("170", "ª", "&#170;", "&ordf;"); 
     ascii.AddasciiRow("171", "«", "&#171;", "&laquo;"); 
     ascii.AddasciiRow("172", "¬", "&#172;", "&not;"); 
     ascii.AddasciiRow("173", "", "&#173;", "&shy;"); 
     ascii.AddasciiRow("174", "®", "&#174;", "&reg;"); 
     ascii.AddasciiRow("175", "¯", "&#175;", "&macr;"); 
     ascii.AddasciiRow("176", "°", "&#176;", "&deg;"); 
     ascii.AddasciiRow("177", "±", "&#177;", "&plusmn;"); 
     ascii.AddasciiRow("178", "²", "&#178;", "&sup2;"); 
     ascii.AddasciiRow("179", "³", "&#179;", "&sup3;"); 
     ascii.AddasciiRow("180", "´", "&#180;", "&acute;"); 
     ascii.AddasciiRow("181", "µ", "&#181;", "&micro;"); 
     ascii.AddasciiRow("182", "¶", "&#182;", "&para;"); 
     ascii.AddasciiRow("183", "·", "&#183;", "&middot;"); 
     ascii.AddasciiRow("184", "¸", "&#184;", "&cedil;"); 
     ascii.AddasciiRow("185", "¹", "&#185;", "&sup1;"); 
     ascii.AddasciiRow("186", "º", "&#186;", "&ordm;"); 
     ascii.AddasciiRow("187", "»", "&#187;", "&raquo;"); 
     ascii.AddasciiRow("188", "¼", "&#188;", "&frac14;"); 
     ascii.AddasciiRow("189", "½", "&#189;", "&frac12;"); 
     ascii.AddasciiRow("190", "¾", "&#190;", "&frac34;"); 
     ascii.AddasciiRow("191", "¿", "&#191;", "&iquest;"); 
     ascii.AddasciiRow("192", "À", "&#192;", "&Agrave;"); 
     ascii.AddasciiRow("193", "Á", "&#193;", "&Aacute;"); 
     ascii.AddasciiRow("194", "Â", "&#194;", "&Acirc;"); 
     ascii.AddasciiRow("195", "Ã", "&#195;", "&Atilde;"); 
     ascii.AddasciiRow("196", "Ä", "&#196;", "&Auml;"); 
     ascii.AddasciiRow("197", "Å", "&#197;", "&Aring;"); 
     ascii.AddasciiRow("198", "Æ", "&#198;", "&AElig;"); 
     ascii.AddasciiRow("199", "Ç", "&#199;", "&Ccedil;"); 
     ascii.AddasciiRow("200", "È", "&#200;", "&Egrave;"); 
     ascii.AddasciiRow("201", "É", "&#201;", "&Eacute;"); 
     ascii.AddasciiRow("202", "Ê", "&#202;", "&Ecirc;"); 
     ascii.AddasciiRow("203", "Ë", "&#203;", "&Euml;"); 
     ascii.AddasciiRow("204", "Ì", "&#204;", "&Igrave;"); 
     ascii.AddasciiRow("205", "Í", "&#205;", "&Iacute;"); 
     ascii.AddasciiRow("206", "Î", "&#206;", "&Icirc;"); 
     ascii.AddasciiRow("207", "Ï", "&#207;", "&Iuml;"); 
     ascii.AddasciiRow("208", "Ð", "&#208;", "&ETH;"); 
     ascii.AddasciiRow("209", "Ñ", "&#209;", "&Ntilde;"); 
     ascii.AddasciiRow("210", "Ò", "&#210;", "&Ograve;"); 
     ascii.AddasciiRow("211", "Ó", "&#211;", "&Oacute;"); 
     ascii.AddasciiRow("212", "Ô", "&#212;", "&Ocirc;"); 
     ascii.AddasciiRow("213", "Õ", "&#213;", "&Otilde;"); 
     ascii.AddasciiRow("214", "Ö", "&#214;", "&Ouml;"); 
     ascii.AddasciiRow("215", "×", "&#215;", "&times;"); 
     ascii.AddasciiRow("216", "Ø", "&#216;", "&Oslash;"); 
     ascii.AddasciiRow("217", "Ù", "&#217;", "&Ugrave;"); 
     ascii.AddasciiRow("218", "Ú", "&#218;", "&Uacute;"); 
     ascii.AddasciiRow("219", "Û", "&#219;", "&Ucirc;"); 
     ascii.AddasciiRow("220", "Ü", "&#220;", "&Uuml;"); 
     ascii.AddasciiRow("221", "Ý", "&#221;", "&Yacute;"); 
     ascii.AddasciiRow("222", "Þ", "&#222;", "&THORN;"); 
     ascii.AddasciiRow("223", "ß", "&#223;", "&szlig;"); 
     ascii.AddasciiRow("224", "à", "&#224;", "&agrave;"); 
     ascii.AddasciiRow("225", "á", "&#225;", "&aacute;"); 
     ascii.AddasciiRow("226", "â", "&#226;", "&acirc;"); 
     ascii.AddasciiRow("227", "ã", "&#227;", "&atilde;"); 
     ascii.AddasciiRow("228", "ä", "&#228;", "&auml;"); 
     ascii.AddasciiRow("229", "å", "&#229;", "&aring;"); 
     ascii.AddasciiRow("230", "æ", "&#230;", "&aelig;"); 
     ascii.AddasciiRow("231", "ç", "&#231;", "&ccedil;"); 
     ascii.AddasciiRow("232", "è", "&#232;", "&egrave;"); 
     ascii.AddasciiRow("233", "é", "&#233;", "&eacute;"); 
     ascii.AddasciiRow("234", "ê", "&#234;", "&ecirc;"); 
     ascii.AddasciiRow("235", "ë", "&#235;", "&euml;"); 
     ascii.AddasciiRow("236", "ì", "&#236;", "&igrave;"); 
     ascii.AddasciiRow("237", "í", "&#237;", "&iacute;"); 
     ascii.AddasciiRow("238", "î", "&#238;", "&icirc;"); 
     ascii.AddasciiRow("239", "ï", "&#239;", "&iuml;"); 
     ascii.AddasciiRow("240", "ð", "&#240;", "&eth;"); 
     ascii.AddasciiRow("241", "ñ", "&#241;", "&ntilde;"); 
     ascii.AddasciiRow("242", "ò", "&#242;", "&ograve;"); 
     ascii.AddasciiRow("243", "ó", "&#243;", "&oacute;"); 
     ascii.AddasciiRow("244", "ô", "&#244;", "&ocirc;"); 
     ascii.AddasciiRow("245", "õ", "&#245;", "&otilde;"); 
     ascii.AddasciiRow("246", "ö", "&#246;", "&ouml;"); 
     ascii.AddasciiRow("247", "÷", "&#247;", "&divide;"); 
     ascii.AddasciiRow("248", "ø", "&#248;", "&oslash;"); 
     ascii.AddasciiRow("249", "ù", "&#249;", "&ugrave;"); 
     ascii.AddasciiRow("250", "ú", "&#250;", "&uacute;"); 
     ascii.AddasciiRow("251", "û", "&#251;", "&ucirc;"); 
     ascii.AddasciiRow("252", "ü", "&#252;", "&uuml;"); 
     ascii.AddasciiRow("253", "ý", "&#253;", "&yacute;"); 
     ascii.AddasciiRow("254", "þ", "&#254;", "&thorn;"); 
     ascii.AddasciiRow("255", "ÿ", "&#255;", "&yuml;"); 

     return ascii; 
    }