[Allegro] Unicode-Anwendung bei DNB
Thomas Berger
ThB at Gymel.com
Mo Jul 6 10:39:38 CEST 2015
Am 06.07.2015 um 10:07 schrieb Bernhard Eversberg:
> Es ging mir nicht um Spitzfindigkeiten, sondern ob es ein Hilfsprogramm
> gibt, das eine Unicode-Datei mit dekomponierten Zeichen so umkombiniert
> (oder wie sagt man dann?), daß diejenigen Zeichen, die auch als
> Kompositionen existieren, aus den dekombinierten erzeugt werden, also
> aus einem a + Diaerese eben ein ä, aber ein ein ß + Diaerese bliebe
> unangetastet.
Ich frage jetzt nicht, warum Sie fragen, alle moeglichen Nutzungen,
die mir einfallen, beruhen darauf, dass man ~gewisse~ Zeichen kombiniert
und andere hingegen zerlegt...
Bei Microsoft ist es NormalizeString, also /eine/ Library-Funktion, der
mitgeteilt wird, welche der Normalformen gewuenscht ist,
<
https://msdn.microsoft.com/en-us/library/windows/desktop/dd319094%28v=vs.85%29.aspx
>
Sie wollen da scheints NFC (oder NFKC):
>>>
NormalizationC
Unicode normalization form C, canonical composition. Transforms each
decomposed grouping, consisting of a base character plus combining characters,
to the canonical precomposed equivalent. For example, A + ¨ becomes Ä.
<<<
Solche calls kann man dann in JavaScript, VisualBasicScript oder den/die/das
PowerShell einbauen und fertig ist das Utility (sagt man...)
Vermutlich wollen Sie das aber nicht auf (abstrakte) Unicode-Strings, sondern
auf UTF8-codierte Bytestrings loslassen, das muesste alles auf einmal
mit uconv von libicu gehen, selbst ausprobiert habe ich es noch nicht.
So ziemlich jede Scriptsprache duefte aequivalente Module (ggfls. unabhaengig
vom Betriebssystem) zur Verfuegung stellen, so sollte es unter Perl
funktionieren (nicht getestet):
perl -MUnicode::Normalize -p -CS -e '$_=NFC($_)' < infile > outfile
(wobei evtl. Windows bei ">" auch eine weitere Konversion dazuhext, also
Vorsicht, vgl. cmd /A oder cmd /U)
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro