2010-01-20 179 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; 
    }