📜  c# convertir caracter con tilde - C# (1)

📅  最后修改于: 2023-12-03 14:39:42.607000             🧑  作者: Mango

C# Convertir caracter con tilde

En C#, a veces es necesario convertir caracteres con tilde a su forma sin tilde para comparaciones o búsquedas en bases de datos. Aquí te mostramos algunas formas de hacerlo.

Usando la librería System.Globalization

La librería System.Globalization contiene la clase StringNormalizationExtensions que proporciona el método RemoveDiacritics que convierte caracteres con diacríticos en su forma sin diacríticos. Aquí está un ejemplo:

using System.Globalization;

string textoOriginal = "áéíóúñ";
string textoSinTilde = textoOriginal.Normalize(NormalizationForm.FormD).RemoveDiacritics();

Console.WriteLine(textoSinTilde); // Imprime: aeioun

Notas:

  • La primera línea importa System.Globalization para poder usarla en el resto del código.
  • La segunda línea define un texto original con caracteres con tilde.
  • La tercera línea utiliza la función Normalize para convertir los caracteres a su forma de combinación diacrítica (FormD), lo que permite usar el método RemoveDiacritics.
  • Por último, el método RemoveDiacritics elimina los diacríticos y retorna el texto sin tilde.
Usando expresiones regulares

También es posible utilizar expresiones regulares para reemplazar caracteres con diacríticos por sus equivalentes sin diacríticos. Aquí está un ejemplo:

using System.Text.RegularExpressions;

string textoConTilde = "áéíóúñ";
string textoSinTilde = Regex.Replace(textoConTilde.Normalize(NormalizationForm.FormD), @"[^a-zA-Z0-9\s]", "");

Console.WriteLine(textoSinTilde); // Imprime: aeioun

Notas:

  • La primera línea importa System.Text.RegularExpressions.
  • La segunda línea define un texto con caracteres con tilde.
  • La tercera línea utiliza la función Normalize para convertir los caracteres a su forma de combinación diacrítica (FormD), lo que permite usar una expresión regular para buscar y reemplazar caracteres con diacríticos.
  • La expresión regular en la tercera línea busca cualquier caracter que no sea una letra (a-zA-Z), un número o un espacio (\s) y lo reemplaza por una cadena vacía (""), eliminándolo del resultado.
Conclusión

Convertir caracteres con tilde en C# puede ser necesario para comparar o buscar texto en bases de datos con caracteres sin tilde. En este artículo, hemos visto dos formas de hacerlo: utilizando la librería System.Globalization y con expresiones regulares. ¡Esperamos que esta información te sea útil!