Eliminar diacríticos en Silverlight (String. Normalizar problema)
Creé una función que transforma los caracteres diacríticos en caracteres no diacríticos (basado en estoenviar)
Aquí está el código:
Public Function RemoveDiacritics(ByVal searchInString As String) As String
Dim returnValue As String = ""
Dim formD As String = searchInString.Normalize(System.Text.NormalizationForm.FormD)
Dim unicodeCategory As System.Globalization.UnicodeCategory = Nothing
Dim stringBuilder As New System.Text.StringBuilder()
For formScan As Integer = 0 To formD.Length - 1
unicodeCategory = System.Globalization.CharUnicodeInfo.GetUnicodeCategory(formD(formScan))
If unicodeCategory <> System.Globalization.UnicodeCategory.NonSpacingMark Then
stringBuilder.Append(formD(formScan))
End If
Next
returnValue = stringBuilder.ToString().Normalize(System.Text.NormalizationForm.FormC)
Return returnValue
End Function
Desafortunadamente, como String.Normlize no es parte de Silverlight, necesito encontrar otra forma de escribir esta función.
La única solución que he encontrado hasta ahora es crear un servicio en el lado del servidor que llame a la función String.Normalize y luego devolverlo al lado del cliente ... pero eso crearía un gran problema de rendimiento.
Debe haber una mejor alternativa, pero sé que no tengo idea de cómo solucionar este problema.