将德语字符(元音变音、重音符号)替换为英语等效字符
我需要从文本的各个字段中删除任何德语特定字符,以便处理到另一个不接受它们有效的系统中。
所以我所知道的角色是:
β
A
ö
ü
A
奥
ü
目前我有一些手动方式来替换它们:
myGermanString.Replace("ä","a").Replace("ö","o").Replace("ü","u").....
但我希望有一种更简单/更有效的方法来做到这一点。因为每次运行我都会对数千个字符串执行此操作,其中 99% 不会包含这些字符。
也许是涉及某种 CultureInfo 的方法?
(例如,根据 MS,以下返回字符串相等
String.Compare("Straße", "Strasse", StringComparison.CurrentCulture);
所以一定已经存在某种转换表?)
该过程称为删除“变音符号” - 请参阅从字符串中删除变音符号(重音符号) http://weblogs.asp.net/fmarguerie/archive/2006/10/30/removing-diacritics-accents-from-strings.aspx它使用以下代码:
public static String RemoveDiacritics(String s)
{
String normalizedString = s.Normalize(NormalizationForm.FormD);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < normalizedString.Length; i++)
{
Char c = normalizedString[i];
if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
stringBuilder.Append(c);
}
return stringBuilder.ToString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)