.Net将字符串转换为HTML转义字符的方法

时间:2010-01-20 17:08:28

标签: .net html encoding html-escape-characters

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

  

在电子邮件地址上放置时   你把网页作为文字放在哪里   这样:

joe.somebody@company.com
     

或使用聪明的伎俩来欺骗   电子邮件地址收割机机器人?对于   例如:

     

HTML转义字符:

joe.somebody@company.com

虽然我找不到.Net方法。 Html.Encode仅执行无效的HTML字符,例如£$%^&而不是信件。

是否存在方法或者我需要编写自己的方法吗?

非常感谢

4 个答案:

答案 0 :(得分:3)

我认为你可以使用

HttpUtility.HtmlEncode

另见: http://msdn.microsoft.com/en-us/library/73z22y6h.aspx

答案 1 :(得分: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();
}

答案 2 :(得分:2)

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

答案 3 :(得分: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