我想你真正想要的是删除所有
diacretics
从一个字符串,所以重音或变音。然后您可以使用此方法,因为它使用
StringBuilder
:
Public Shared Function RemoveDiacritics(s As String) As String
Dim normalizedString As String = s.Normalize(NormalizationForm.FormD)
Dim stringBuilder As New StringBuilder()
For Each c As Char In normalizedString
If CharUnicodeInfo.GetUnicodeCategory(c) <> UnicodeCategory.NonSpacingMark Then
stringBuilder.Append(c)
End If
Next
Return stringBuilder.ToString()
End Function
[记住添加
Imports System.Text
到代码文件的顶部]
但请注意,它将转换为
ü
到
u
(根据需要)不正确。通常,你应该用以下方式“翻译”德语变音:
=
ue
,
ä
=
ae
,
ö
=
oe
.
Related
您可以这样调用上述方法:
Dim text As String = File.ReadAllText(sFileName)
Dim newText As String = RemoveDiacritics(text)
File.WriteAllText(sFileName, newText)