Ich versuche diakritische Zeichen aus einem Pangramm auf Polnisch zu entfernen. Ich verwende Code aus Michael Kaplans Blog Ссылка , allerdings ohne Erfolg.
>Betrachten Sie folgendes Pangram: "Pchnąć w tê łódź jeża lub ośm skrzyń fig.". Alles funktioniert gut, aber für den Buchstaben "ł" bekomme ich immer noch "ł". Ich vermute, das Problem ist, dass "ł" als einzelnes Unicode-Zeichen dargestellt wird und es keine folgende NonSpacingMark gibt.
Haben Sie eine Idee, wie ich es beheben kann (ohne auf die benutzerdefinierte Zuordnung in einem Wörterbuch angewiesen zu sein - ich suche nach einer Art Unicode-Konvertierung)?
Der Ansatz in diesem Artikel besteht darin, Mark-Zeichen mit Leerzeichen zu entfernen. Da, wie Sie richtig angeben, "ł" nicht aus zwei Zeichen besteht (eines davon ist Mark, Nonspacing), wird das Verhalten erwartet, das Sie sehen.
Ich glaube nicht, dass die Struktur von Unicode Ihnen erlaubt, eine voll automatisierte Neuzuordnung durchzuführen (der Autor des Artikels, auf den Sie verweisen, kommt zu demselben Schluss).
Wenn Sie nur an polnischen Schriftzeichen interessiert sind, ist zumindest das Mapping klein und gut definiert (siehe zB den unteren Teil von Ссылка ). Für den allgemeinen Fall glaube ich nicht, dass eine automatisierte Lösung für Zeichen existiert, die nicht aus einem Standardzeichen plus einem Zeichen ohne Leerzeichen bestehen.
Es befindet sich im Unicode-Diagramm , Codepunkt \ u0142. Scrollen Sie nach unten zur Beschreibung "Kleiner lateinischer Buchstabe mit Strich", es ist keine Dekomposition aufgeführt. Ich weiß nichts über Polnisch, aber es ist üblich, dass ein Buchstabe ein Unterscheidungsmerkmal hat, das ihn zu einem eigenen Buchstaben macht, anstatt zu einem Basisbuchstaben mit einem diakritischen Zeichen.
Sie müssen diese manuell ersetzen (genau wie mit ÆÐØÞßæðøþ in Latin-1).
Andere Leute haben das gleiche Problem, daher hat das Unicode Common Locale Data Repository "zugestimmt, einen Transliterator hinzuzufügen, der die Entfernung von Akzenten auch für überlagerte Akzente ermöglicht." ( Ticket # 2884 )
Es gibt einige vorkomposierte Zeichen, die keine sinnvollen Dekompositionen enthalten.
(Es gibt auch eine Handvoll, die vernünftige Zerlegungen haben könnten, die von einer solchen Zerlegung in den meisten Normalisierungsformen ausgeschlossen sind, da dies zu Unterschieden zwischen den Versionen führen würde, die sie nicht wirklich zur Normalisierung zwingen würden).
ł ist einer von diesen. IIRC es ist auch nicht möglich, Alphabeten, die kein ł verwenden, eine kulturneutrale Transkription zu geben. Ich denke, die Deutschen neigen dazu, es auf w zu übertragen, anstatt auf l (oder vielleicht ist es jemand anderes), was einen Sinn ergibt (es ist auch nicht ganz richtig klingen, aber es ist näher als ich).
Tags und Links .net c# unicode diacritics polish