Удаление диакритических знаков в Silverlight (проблема String.Normalize)
Я создал функцию, которая преобразует диакритические символы в недиакритические символы (на основе этогосообщение)
Вот код:
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
К сожалению, поскольку String.Normlize не является частью Silverlight, мне нужно найти другой способ написания этой функции.
Единственное решение, которое я нашел до сих пор, - это создать службу на стороне сервера, которая вызывала бы функцию String.Normalize, а затем возвращала бы ее на стороне клиента ... но это создало бы огромную проблему с производительностью.
Должна быть лучшая альтернатива, но точно знаю, что я понятия не имею, как решить эту проблему.