2010-01-20 180 views
3

我想将电子邮件地址转换为HTML转义字符,作为尝试避免被垃圾邮件机器人收获的基本方法。像this question提到:.Net将字符串转换为HTML转义字符的方法

当放置电子邮件地址,在一个 网页,你把他们的文字像 这样:

[email protected] 

,或者使用一个聪明的伎俩,试图愚弄 的电子邮件地址收割机机器人?对于 例如:

HTML转义字符:

joe.somebody@company.com 

我无法找到一个.NET方法这样做虽然。 Html.Encode只会执行无效的HTML字符,例如£$%^ &而不是字母。

是否有方法存在或我需要自己写吗?

非常感谢

+1

虽然你的努力是值得,这样可以保护你的地址从一些机器人,它不会糊弄很多并且地址将立即在列表中。 – overslacked 2010-01-20 17:18:21

+0

希望它会有所帮助。它试图像其他方法(使其成为图像,隐藏地址等)尽其所能,我并不热衷于此。 – Damien 2010-01-20 17:19:38

+0

达米恩 - 问题在于列表是买卖的。一旦你结束了一个它基本上结束了。 – overslacked 2010-01-20 17:58:53

回答

2

我不知道的包括在框架中任何东西,但你可以尝试这样的事情?

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

谢谢!所以它是$#+数字代码?优秀。 – Damien 2010-01-20 17:31:56

3

我认为你可以使用

HttpUtility.HtmlEncode

在此还看到: http://msdn.microsoft.com/en-us/library/73z22y6h.aspx

+0

是的。干杯。但是,如前所述,此方法只会生成无效的HTML字符而不是字母或数字。它基本上不会影响HTML源代码中的电子邮件。 – Damien 2010-01-20 17:17:39

+0

噢好吧,然后我错过了你。抱歉。 – 2010-01-20 17:27:30

+0

Np。欢迎来到SO顺便说一句:) – Damien 2010-01-20 17:30:11

1

没有,但它是很容易写一个...

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