Entfernen von diakritischen Zeichen in Silverlight (String.Normalize-Problem)
Ich habe eine Funktion erstellt, die diakritische Zeichen in nicht-diakritische Zeichen umwandelt (basierend auf diesemPos)
Hier ist der Code:
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
Da String.Normlize nicht zu Silverlight gehört, muss ich leider einen anderen Weg finden, um diese Funktion zu schreiben.
Die einzige Lösung, die ich bisher gefunden habe, besteht darin, einen Dienst auf der Serverseite zu erstellen, der die Funktion String.Normalize aufruft und dann an die Clientseite zurückgibt. Dies würde jedoch ein großes Leistungsproblem verursachen.
Es muss eine bessere Alternative geben, aber ich weiß, dass ich keine Ahnung habe, wie ich dieses Problem beheben kann.