Método .Net para convertir cadena a caracteres de escape HTML
-
21-09-2019 - |
Pregunta
Quiero convertir una dirección de correo electrónico en HTML de caracteres de escape como una forma básica para tratar de evitar ser capturado por los robots de spam. Como se mencionó en esta pregunta :
Al colocar direcciones de correo electrónico en una página web hace que los coloca como texto como esto:
joe.somebody@company.com
o usar un truco inteligente para tratar de tonto los robots de cosechadoras dirección de correo? por ejemplo:
caracteres de escape HTML:
joe.somebody@company.com
No puedo encontrar un método .Net para hacerlo sin embargo. El Html.Encode sólo lo hace los caracteres HTML no válidos como £ $% ^ & y no letras.
¿Un método de existir o tengo que escribir mi propia?
Muchas gracias
Solución
No estoy al tanto de todo lo incluido en el marco, pero se puede intentar algo como esto?
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();
}
Otros consejos
Creo que se puede utilizar
HttpUtility.HtmlEncode
También ver aquí: http://msdn.microsoft.com/en-us/library/73z22y6h. aspx
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", ";", ";", ";");
//ascii.AddasciiRow("60", "<", "<", "<");
ascii.AddasciiRow("60", "<", "<", "<");
ascii.AddasciiRow("61", "=", "=", "=");
//ascii.AddasciiRow("62", ">", ">", ">");
ascii.AddasciiRow("62", ">", ">", ">");
ascii.AddasciiRow("63", "?", "?", "?");
ascii.AddasciiRow("64", "@", "@", "@");
ascii.AddasciiRow("65", "A", "A", "A");
ascii.AddasciiRow("66", "B", "B", "B");
ascii.AddasciiRow("67", "C", "C", "C");
ascii.AddasciiRow("68", "D", "D", "D");
ascii.AddasciiRow("69", "E", "E", "E");
ascii.AddasciiRow("70", "F", "F", "F");
ascii.AddasciiRow("71", "G", "G", "G");
ascii.AddasciiRow("72", "H", "H", "H");
ascii.AddasciiRow("73", "I", "I", "I");
ascii.AddasciiRow("74", "J", "J", "J");
ascii.AddasciiRow("75", "K", "K", "K");
ascii.AddasciiRow("76", "L", "L", "L");
ascii.AddasciiRow("77", "M", "M", "M");
ascii.AddasciiRow("78", "N", "N", "N");
ascii.AddasciiRow("79", "O", "O", "O");
ascii.AddasciiRow("80", "P", "P", "P");
ascii.AddasciiRow("81", "Q", "Q", "Q");
ascii.AddasciiRow("82", "R", "R", "R");
ascii.AddasciiRow("83", "S", "S", "S");
ascii.AddasciiRow("84", "T", "T", "T");
ascii.AddasciiRow("85", "U", "U", "U");
ascii.AddasciiRow("86", "V", "V", "V");
ascii.AddasciiRow("87", "W", "W", "W");
ascii.AddasciiRow("88", "X", "X", "X");
ascii.AddasciiRow("89", "Y", "Y", "Y");
ascii.AddasciiRow("90", "Z", "Z", "Z");
ascii.AddasciiRow("91", "[", "[", "[");
ascii.AddasciiRow("92", @"\", "\", @"\");
ascii.AddasciiRow("93", "]", "]", "]");
ascii.AddasciiRow("94", "^", "^", "^");
ascii.AddasciiRow("95", "_", "_", "_");
ascii.AddasciiRow("96", "`", "`", "`");
ascii.AddasciiRow("97", "a", "a", "a");
ascii.AddasciiRow("98", "b", "b", "b");
ascii.AddasciiRow("99", "c", "c", "c");
ascii.AddasciiRow("100", "d", "d", "d");
ascii.AddasciiRow("101", "e", "e", "e");
ascii.AddasciiRow("102", "f", "f", "f");
ascii.AddasciiRow("103", "g", "g", "g");
ascii.AddasciiRow("104", "h", "h", "h");
ascii.AddasciiRow("105", "i", "i", "i");
ascii.AddasciiRow("106", "j", "j", "j");
ascii.AddasciiRow("107", "k", "k", "k");
ascii.AddasciiRow("108", "l", "l", "l");
ascii.AddasciiRow("109", "m", "m", "m");
ascii.AddasciiRow("110", "n", "n", "n");
ascii.AddasciiRow("111", "o", "o", "o");
ascii.AddasciiRow("112", "p", "p", "p");
ascii.AddasciiRow("113", "q", "q", "q");
ascii.AddasciiRow("114", "r", "r", "r");
ascii.AddasciiRow("115", "s", "s", "s");
ascii.AddasciiRow("116", "t", "t", "t");
ascii.AddasciiRow("117", "u", "u", "u");
ascii.AddasciiRow("118", "v", "v", "v");
ascii.AddasciiRow("119", "w", "w", "w");
ascii.AddasciiRow("120", "x", "x", "x");
ascii.AddasciiRow("121", "y", "y", "y");
ascii.AddasciiRow("122", "z", "z", "z");
ascii.AddasciiRow("123", "{", "{", "{");
ascii.AddasciiRow("124", "|", "|", "|");
ascii.AddasciiRow("125", "}", "}", "}");
ascii.AddasciiRow("126", "~", "~", "~");
ascii.AddasciiRow("127", "", "", "");
ascii.AddasciiRow("128", "€", "€", "€");
ascii.AddasciiRow("129", "", "", "");
ascii.AddasciiRow("130", "‚", "‚", "‚");
ascii.AddasciiRow("131", "ƒ", "ƒ", "ƒ");
ascii.AddasciiRow("132", "„", "„", "„");
ascii.AddasciiRow("133", "…", "…", "…");
ascii.AddasciiRow("134", "†", "†", "†");
ascii.AddasciiRow("135", "‡", "‡", "‡");
ascii.AddasciiRow("136", "ˆ", "ˆ", "ˆ");
ascii.AddasciiRow("137", "‰", "‰", "‰");
ascii.AddasciiRow("138", "Š", "Š", "Š");
ascii.AddasciiRow("139", "‹", "‹", "‹");
ascii.AddasciiRow("140", "Œ", "Œ", "Œ");
ascii.AddasciiRow("141", "", "", "");
ascii.AddasciiRow("142", "Ž", "Ž", "");
ascii.AddasciiRow("143", "", "", "");
ascii.AddasciiRow("144", "", "", "");
ascii.AddasciiRow("145", "‘", "‘", "‘");
ascii.AddasciiRow("146", "’", "’", "’");
ascii.AddasciiRow("147", "“", "“", "“");
ascii.AddasciiRow("148", "”", "”", "”");
ascii.AddasciiRow("149", "•", "•", "•");
ascii.AddasciiRow("150", "–", "–", "–");
ascii.AddasciiRow("151", "—", "—", "—");
ascii.AddasciiRow("152", "˜", "˜", "˜");
ascii.AddasciiRow("153", "™", "™", "™");
ascii.AddasciiRow("154", "š", "š", "š");
ascii.AddasciiRow("155", "›", "›", "›");
ascii.AddasciiRow("156", "œ", "œ", "œ");
ascii.AddasciiRow("157", "", "", "");
ascii.AddasciiRow("158", "ž", "ž", "");
ascii.AddasciiRow("159", "Ÿ", "Ÿ", "ÿ");
ascii.AddasciiRow("160", "", " ", " ");
ascii.AddasciiRow("161", "¡", "¡", "¡");
ascii.AddasciiRow("162", "¢", "¢", "¢");
ascii.AddasciiRow("163", "£", "£", "£");
ascii.AddasciiRow("164", "¤", "¤", "¤");
ascii.AddasciiRow("165", "¥", "¥", "¥");
ascii.AddasciiRow("166", "¦", "¦", "¦");
ascii.AddasciiRow("167", "§", "§", "§");
ascii.AddasciiRow("168", "¨", "¨", "¨");
ascii.AddasciiRow("169", "©", "©", "©");
ascii.AddasciiRow("170", "ª", "ª", "ª");
ascii.AddasciiRow("171", "«", "«", "«");
ascii.AddasciiRow("172", "¬", "¬", "¬");
ascii.AddasciiRow("173", "", "­", "­");
ascii.AddasciiRow("174", "®", "®", "®");
ascii.AddasciiRow("175", "¯", "¯", "¯");
ascii.AddasciiRow("176", "°", "°", "°");
ascii.AddasciiRow("177", "±", "±", "±");
ascii.AddasciiRow("178", "²", "²", "²");
ascii.AddasciiRow("179", "³", "³", "³");
ascii.AddasciiRow("180", "´", "´", "´");
ascii.AddasciiRow("181", "µ", "µ", "µ");
ascii.AddasciiRow("182", "¶", "¶", "¶");
ascii.AddasciiRow("183", "·", "·", "·");
ascii.AddasciiRow("184", "¸", "¸", "¸");
ascii.AddasciiRow("185", "¹", "¹", "¹");
ascii.AddasciiRow("186", "º", "º", "º");
ascii.AddasciiRow("187", "»", "»", "»");
ascii.AddasciiRow("188", "¼", "¼", "¼");
ascii.AddasciiRow("189", "½", "½", "½");
ascii.AddasciiRow("190", "¾", "¾", "¾");
ascii.AddasciiRow("191", "¿", "¿", "¿");
ascii.AddasciiRow("192", "À", "À", "À");
ascii.AddasciiRow("193", "Á", "Á", "Á");
ascii.AddasciiRow("194", "Â", "Â", "Â");
ascii.AddasciiRow("195", "Ã", "Ã", "Ã");
ascii.AddasciiRow("196", "Ä", "Ä", "Ä");
ascii.AddasciiRow("197", "Å", "Å", "Å");
ascii.AddasciiRow("198", "Æ", "Æ", "Æ");
ascii.AddasciiRow("199", "Ç", "Ç", "Ç");
ascii.AddasciiRow("200", "È", "È", "È");
ascii.AddasciiRow("201", "É", "É", "É");
ascii.AddasciiRow("202", "Ê", "Ê", "Ê");
ascii.AddasciiRow("203", "Ë", "Ë", "Ë");
ascii.AddasciiRow("204", "Ì", "Ì", "Ì");
ascii.AddasciiRow("205", "Í", "Í", "Í");
ascii.AddasciiRow("206", "Î", "Î", "Î");
ascii.AddasciiRow("207", "Ï", "Ï", "Ï");
ascii.AddasciiRow("208", "Ð", "Ð", "Ð");
ascii.AddasciiRow("209", "Ñ", "Ñ", "Ñ");
ascii.AddasciiRow("210", "Ò", "Ò", "Ò");
ascii.AddasciiRow("211", "Ó", "Ó", "Ó");
ascii.AddasciiRow("212", "Ô", "Ô", "Ô");
ascii.AddasciiRow("213", "Õ", "Õ", "Õ");
ascii.AddasciiRow("214", "Ö", "Ö", "Ö");
ascii.AddasciiRow("215", "×", "×", "×");
ascii.AddasciiRow("216", "Ø", "Ø", "Ø");
ascii.AddasciiRow("217", "Ù", "Ù", "Ù");
ascii.AddasciiRow("218", "Ú", "Ú", "Ú");
ascii.AddasciiRow("219", "Û", "Û", "Û");
ascii.AddasciiRow("220", "Ü", "Ü", "Ü");
ascii.AddasciiRow("221", "Ý", "Ý", "Ý");
ascii.AddasciiRow("222", "Þ", "Þ", "Þ");
ascii.AddasciiRow("223", "ß", "ß", "ß");
ascii.AddasciiRow("224", "à", "à", "à");
ascii.AddasciiRow("225", "á", "á", "á");
ascii.AddasciiRow("226", "â", "â", "â");
ascii.AddasciiRow("227", "ã", "ã", "ã");
ascii.AddasciiRow("228", "ä", "ä", "ä");
ascii.AddasciiRow("229", "å", "å", "å");
ascii.AddasciiRow("230", "æ", "æ", "æ");
ascii.AddasciiRow("231", "ç", "ç", "ç");
ascii.AddasciiRow("232", "è", "è", "è");
ascii.AddasciiRow("233", "é", "é", "é");
ascii.AddasciiRow("234", "ê", "ê", "ê");
ascii.AddasciiRow("235", "ë", "ë", "ë");
ascii.AddasciiRow("236", "ì", "ì", "ì");
ascii.AddasciiRow("237", "í", "í", "í");
ascii.AddasciiRow("238", "î", "î", "î");
ascii.AddasciiRow("239", "ï", "ï", "ï");
ascii.AddasciiRow("240", "ð", "ð", "ð");
ascii.AddasciiRow("241", "ñ", "ñ", "ñ");
ascii.AddasciiRow("242", "ò", "ò", "ò");
ascii.AddasciiRow("243", "ó", "ó", "ó");
ascii.AddasciiRow("244", "ô", "ô", "ô");
ascii.AddasciiRow("245", "õ", "õ", "õ");
ascii.AddasciiRow("246", "ö", "ö", "ö");
ascii.AddasciiRow("247", "÷", "÷", "÷");
ascii.AddasciiRow("248", "ø", "ø", "ø");
ascii.AddasciiRow("249", "ù", "ù", "ù");
ascii.AddasciiRow("250", "ú", "ú", "ú");
ascii.AddasciiRow("251", "û", "û", "û");
ascii.AddasciiRow("252", "ü", "ü", "ü");
ascii.AddasciiRow("253", "ý", "ý", "ý");
ascii.AddasciiRow("254", "þ", "þ", "þ");
ascii.AddasciiRow("255", "ÿ", "ÿ", "ÿ");
return ascii;
}
No, pero es bastante fácil de una escritura ...
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