using System.Globalization;
using System.Text.RegularExpressions;
public static void Main()
string texto = @"abcdefghijqlmnopqrstuvxzwyABCDEFGIJKLMNOPQRSTUVXZWY0123456789 - ! @ # $ % ¨ & * ( ) _+=-£¢¬/?´`[{ªº]}^~:;.><,\|'"" - çÇáéíóúýÁÉÍÓÚÝàèìòùÀÈÌÒÙãõñäëïöüÿÄËÏÖÜÃÕÑâêîôûÂÊÎÔÛ";
Console.WriteLine("Texto Cod: " + RemoverAcentos(texto, "Cyrillic"));
Console.WriteLine("Texto Bui: " + RemoverAcentos(texto));
Console.WriteLine("Texto Esp: " + RemoverCaracteresEspeciais(texto));
Console.WriteLine("Texto Esp: " + RemoverCaracteresEspeciais(texto, "-", "!", @"@", @"\", "#"));
public static string RemoverAcentos(string texto, string codificacao = "Cyrillic")
byte[] bytes = Encoding.GetEncoding(codificacao).GetBytes(texto);
return Encoding.ASCII.GetString(bytes);
public static string RemoverAcentos(string texto, bool a)
StringBuilder novoTexto = new StringBuilder();
var array = texto.Normalize(NormalizationForm.FormD).ToCharArray();
foreach (char letra in array)
if (CharUnicodeInfo.GetUnicodeCategory(letra) != UnicodeCategory.NonSpacingMark)
return novoTexto.ToString();
public static string RemoverCaracteresEspeciais(string texto)
return Regex.Replace(texto, @"[^a-zA-Z0-9\s]", "");
public static string RemoverCaracteresEspeciais(string texto, params string[] ignore)
return Regex.Replace(texto, @"[^a-zA-Z0-9\s"+ string.Join(@"\", ignore) + "]", "");