Laden...

Funktion gesucht die zum Beispiel "ã,é,ñ,í" ändert

Erstellt von digi333 vor 15 Jahren Letzter Beitrag vor 15 Jahren 909 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren
Funktion gesucht die zum Beispiel "ã,é,ñ,í" ändert

Ich hab bei mir manchmal (je nach Sprache) bestimmte Zeichen drinne (z. B. ã,é,ñ,í) die in anderen Programme Probleme machen. Kennt jemand eine Möglichkeit einen String automatisch umzubennen.

"Coração" --> "Coracao"
aber nicht --> "Corao"

Bitte keine Vorschläge wie "String.Replace". Ich hab leider keinen Überblick wieviele Möglichkeiten von Sondersymbolen über Buchstaben es gibt. Lieber wär mir irgendwas wie festlegen eines Strings in gültige Sprachen.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

etwas allgemeiner betrachtet nennt sich sowas Transkription. Wäre mir noch nicht aufgefallen, dass es sowas im Framework geben würden. Aber Drittbibliotheken müsste es für sowas eigentlich geben.

herbivore

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Irgendwo schon mal sowas gefunden?

J
3.331 Beiträge seit 2006
vor 15 Jahren

Hallo,

unter (Unicode) Sonderzeichen in Grundbuchstaben umwandeln gibt es allgemeine Hinweise auch von MS, die Dir helfen könnten.

Jürgen

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Ich hab die Antwort mal kopiert...


static string RemoveDiacritics(string stIn)
{
  string stFormD = stIn.Normalize(NormalizationForm.FormD);
  StringBuilder sb = new StringBuilder();

  for(int i = 0; i < stFormD.Length; i++)
  {
     UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);
     if(uc != UnicodeCategory.NonSpacingMark)
       sb.Append(stFormD[i]);
  }   
  return(sb.ToString().Normalize(NormalizationForm.FormC));
}