Es könnte sich auch lohnen, einen Schritt zurückzutreten und zu überlegen warum Sie wollen das tun. Wenn Sie versuchen, Zeichenunterschiede zu entfernen, die Sie für unbedeutend halten, sollten Sie sich den Unicode-Sortieralgorithmus ansehen. Dies ist die Standardmethode, um Unterschiede wie Groß- und Kleinschreibung oder diakritische Zeichen beim Vergleich von Zeichenketten für die Suche oder Sortierung außer Acht zu lassen.
Wenn Sie den geänderten Text anzeigen wollen, denken Sie an Ihr Publikum. Was Sie sicher wegfiltern können, ist ortsabhängig. Im US-Englischen ist "Igloo" = "Iglu" und "resume" = "résumé", aber im Türkischen wird das I klein geschrieben (ohne Punkt), und im Französischen bedeutet cote Zitat, côté Seite und côte Küste. Die Sprache der Zusammenstellung bestimmt also, welche Unterschiede von Bedeutung sind.
Wenn das Entfernen von diakritischen Zeichen die richtige Lösung für Ihre Anwendung ist, ist es am sichersten, eine eigene Tabelle zu erstellen, der Sie die zu konvertierenden Zeichen explizit hinzufügen.
Ein allgemeiner, automatisierter Ansatz könnte mit Hilfe der Unicode-Dekomposition entwickelt werden. Damit können Sie ein Zeichen mit diakritischen Zeichen in "kombinierende" Zeichen (die diakritischen Zeichen) und das Basiszeichen, mit dem sie kombiniert sind, zerlegen. Filtern Sie alles heraus, was ein kombinierendes Zeichen ist, und Sie sollten die "nicht-diakritischen" Zeichen erhalten.
Die fehlende Unterscheidung bei der automatisierten Methode könnte jedoch unerwartete Auswirkungen haben. Ich würde empfehlen, viele Tests mit einem repräsentativen Textkörper durchzuführen.
0 Stimmen
Als ich das in Perl machen musste, hatte ich nur eine große, lange, handgepflegte "tr"-Anweisung, also viel Glück.
0 Stimmen
Dies ist ein Duplikat von mehrere fragen. suchen sie zum beispiel nach "translit". bitte verunstalten sie unsere sprachen nicht!