将德语字符(元音变音、重音符号)替换为英语等效字符

2023-12-29

将德语字符(元音变音、重音符号)替换为英语等效字符

我需要从文本的各个字段中删除任何德语特定字符,以便处理到另一个不接受它们有效的系统中。

所以我所知道的角色是:

β 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(使用前将#替换为@)

将德语字符(元音变音、重音符号)替换为英语等效字符 的相关文章

随机推荐