viernes, 5 de junio de 2015

C# - Reemplazar caracteres especiales

/*Arreglo con caracteres*/
 private string[] caracteres =
    {
        "Á", "Á",
        "À", "À",
        "Â", "Â",
        "Ä", "Ä",
        "Ã", "Ã",
        "Å", "Å",
        "á", "á",
        "à", "à",
        "â", "â",
        "ä", "ä",
        "ã", "ã",
        "å", "å",
        "É", "É",
        "È", "È",
        "Ê", "Ê",
        "Ë", "Ë",
        "é", "é",
        "è", "è",
        "ê", "ê",
        "ë", "ë",
        "Í", "Í",
        "Ì", "Ì",
        "Î", "Î",
        "Ï", "Ï",
        "í", "í",
        "ì", "ì",
        "î", "î",
        "ï", "ï",
        "Ó", "Ó",
        "Ò", "Ò",
        "Ô", "Ô",
        "Ö", "Ö",
        "Õ", "Õ",
        "ó", "ó",
        "ò", "ò",
        "ô", "ô",
        "ö", "ö",
        "õ", "õ",
        "Ú", "Ú",
        "Ù", "Ù",
        "Û", "Û",
        "Ü", "Ü",
        "ú", "ú",
        "ù", "ù",
        "û", "û",
        "ü", "ü",
        "Ý", "Ý",
        "ý", "ý",
        "ÿ", "ÿ",
        "ñ", "ñ",
        "Ñ", "Ñ",
        "Ç", "Ç",
        "ç", "ç",
        "¡", "¡",
        "¿", "¿",
        "´", "´",
        "·", "·",
        "¸", "¸",
        "«", "«",
        "»", "»",
        "¨", "¨",
        "Æ", "Æ",
        "æ", "æ",
        "ß", "ß",
        "µ", "µ",
        "Ð", "Ð",
        "ð", "ð",
        "Þ", "Þ",
        "þ", "þ",
        "¢", "¢",
        "£", "£",
        "¤", "¤",
        "¥", "¥",
        "€", "€",
        "$", "$",
        "¹", "¹",
        "²", "²",
        "³", "³",
        "×", "×",
        "÷", "÷",
        "±", "±",
        "¼", "¼",
        "½", "½",
        "¾", "¾",
        "Ø", "Ø",
        "ø", "ø",
        "¬", "¬",
        "<", "&lt;",
        ">", "&gt;",
        "&", "&amp;",
        " ", "&nbsp;",
        "\"", "&quot;",
        "º", "&ordm;",
        "ª", "&ordf;",
        "©", "&copy;",
        "®", "&reg;",
        "°", "&deg;",
        "¦", "&brvbar;",
        "§", "&sect;",
        "¶", "&para;",
        "¯", "&macr;"
    };

        /// <summary>
        /// ReemplazarCaracteresEspeciales
        /// </summary>
        /// <param name="origen">string con caracteres a limpiar</param>
        /// <returns>string limpio</returns>
        public string ReemplazarCaracteresEspeciales(string origen)
        {
            string destino = "";
            List<string> listCaracteres = new List<string>();
            for (int i = 0; i < origen.Length; i++)
            {
                listCaracteres.Add(origen[i].ToString());
            }

            for (int i = 0; i < listCaracteres.Count; i++)
            {
                for (int j = 0; j < caracteres.Length; j = j + 2)
                {
                    if (listCaracteres[i] == caracteres[j])
                    {
                        listCaracteres[i] = listCaracteres[i].Replace(listCaracteres[i], caracteres[j + 1]);
                        j = caracteres.Length + 1;
                    }
                }
            }

            for (int i = 0; i < listCaracteres.Count; i++)
            {
                destino = destino + listCaracteres[i];
            }

            return destino;
        }

3 comentarios:

  1. Es mas sencillo hacerlo de esta manera
    agregas el using System.Text.RegularExpressions;

    //Metodo que Remueve todods los caracteres especiales de las cadenas
    private string RemoverCaracteresEspeciales(string cadena)
    {
    return Regex.Replace(cadena, @"[^0-9A-Za-z]", "-", RegexOptions.None);

    }

    ResponderEliminar