Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Marcel Logen <333200007110-0201@ybtra.de> |
|---|---|
| Newsgroups | de.test, de.comp.text.misc |
| Subject | Unicode-Normalisierung (was: Normalisierung? - Was geschieht hierbei? - do not ignore ) |
| Followup-To | de.comp.text.misc |
| Date | 2023-07-02 16:58 +0200 |
| Organization | Bureau Logen |
| Message-ID | <20230702su145803@o15.ybtra.de> (permalink) |
| References | (8 earlier) <20230701sa181217@o15.ybtra.de> <52o7nj-fm2.ln1@martin.dont-email.me> <20230702su090059@o15.ybtra.de> <AABkoXymtIsAAAqB.A3.flnews@WStation7.micha.freeshell.org> <b034.c538.dt.1180flnews@barghahn-online.de> |
Cross-posted to 2 groups.
Followups directed to: de.comp.text.misc
Thomas Barghahn in de.test:
[Unicode]
>Könnten wir vielleicht einmal ein /einfaches Beispiel/ besprechen,
>sodass auch jedem Leser klar wird, was mit einer Normalisierung an-
>gestrebt wird und wozu sie eigentlich notwendig ist?
Als Einstiegspunkt könnte man
<https://www.unicode.org/reports/tr15/#Norm_Forms> nehmen.
Dort etwa das Beispiel mit dem "q" aus Figure 5:
<https://www.unicode.org/reports/tr15/images/UAX15-NormFig5.jpg>.
Wir benötigen auch die aktuelle (Unicode v15) Datei
"UnicodeData.txt":
<https://www.unicode.org/Public/15.0.0/ucd/UnicodeData.txt>.
Ich erzeuge (hier mit Perl) die Unicode-Codepoint-Folge "<U+0071>
<U+0307><U+0323>" mit den Codepoints (aus der UnicodeData.txt)
0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
| user15@o15:~/ybtra-o15/unicode-tools$ perl -X -e 'print "\N{U+0071}\N{U+0307}\N{U+0323}"' | ./parser-utf-8-1500-nb020.py
| 71 01110001 => q
| CC 11001100 UTF-8: start
| 87 10000111 ... continuation
| CC87 => U+0307 COMBINING DOT ABOVE
| 775 - Block: Combining Diacritical Marks (0300-036F, 768-879)
| CC 11001100 UTF-8: start
| A3 10100011 ... continuation
| CCA3 => U+0323 COMBINING DOT BELOW
| 803 - Block: Combining Diacritical Marks (0300-036F, 768-879)
Dabei zeigt mein Script "parser-utf-8-1500-nb020.py" die
Bytes und Codepoints einzeln an - in der Reihenfolge, wie
sie gesendet wurden, also zuerst das "q", dann den "DOT
ABOVE" und zuletzt den "DOT BELOW".
Mit dem Tool "uconv" kann man die Reihenfolge der Codepoints
nach NFC konvertieren:
| user15@o15:~/ybtra-o15/unicode-tools$ perl -X -e 'print "\N{U+0071}\N{U+0307}\N{U+0323}"' | uconv -x 'any-nfc;' | ./parser-utf-8-1500-nb020.py
| 71 01110001 => q
| CC 11001100 UTF-8: start
| A3 10100011 ... continuation
| CCA3 => U+0323 COMBINING DOT BELOW
| 803 - Block: Combining Diacritical Marks (0300-036F, 768-879)
| CC 11001100 UTF-8: start
| 87 10000111 ... continuation
| CC87 => U+0307 COMBINING DOT ABOVE
| 775 - Block: Combining Diacritical Marks (0300-036F, 768-879)
Jetzt sieht man, daß sich für NFC die Reihenfolge der DOTs
verändert hat.
Wenn man Unicode-Strings byteweise vergleichen möchte, könnte
man dafür also NFC benutzen.
Die oben bei der UnicodeData.txt angegebenen Werte "220" und
"230" sind die sog. "ccc" (canonical combining classes) der
jeweiligen Codepoints. Um zur Normalform D (decomposed) zu ge-
langen, müssen die COMBINING Codepoints so umsortiert werden,
daß die ccc aufsteigend sortiert sind.
<https://www.unicode.org/reports/tr15/#Description_Norm>
(NFKC und NFKD würde ich erst mal nicht weiter beachten.)
tbc ...
Marcel
fup2 de.comp.text.misc
--
╭────╮ ╭─────╮ ╭──╮ ╭─╮ ╭──╮ ..48..╭──────╮ ╭─╮
╯ ╭─╯ ╰───╮ │ ..26..│ ╰─╯ ╰─╯ ╰─╮ ╭─╮ │ ╭───╯ │ ╰─╮ ╭─
╭─╯ ╭───╯ ╰─╮ ╭─╮ ╭─╮ ╭──╯ ..40..╰─╯ │ ╭─╯ ╰────╮ │ ╰─╯
╰──────╯ ╰───╯ ╰─╯ ╰─╯ ╰─╯ ╰──╯ ..67..
Back to de.test | Previous | Next — Previous in thread | Next in thread | Find similar
Neue Testreihe automatische Subject-Korrektur Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 11:48 +0200
Betreffwechsel (was: Neue Testreihe automatische Subject-Korrektur) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 12:17 +0200
Re: Betreffwechsel Subject-Korrektur) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 18:54 +0200
Re: Betreffwechsel Subject-Korrektur) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 19:41 +0200
Re: Betreffwechsel Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 23:48 +0200
Und jetzt der Härtetest (was: Betreffwechsel (was: Neue Testreihe automatische Subject-Korrektur)) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 10:15 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 10:47 +0200
Re: Und jetzt der Härtetest Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-01 11:51 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 12:45 +0200
Re: Und jetzt der Härtetest Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-01 13:35 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 12:53 +0200
Re: Und jetzt der Härtetest Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-01 13:40 +0200
Re: Und jetzt der Härtetest Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-01 16:24 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 19:50 +0200
Re: Und jetzt der Härtetest Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-01 20:12 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-02 10:09 +0200
Re: Und jetzt der Härtetest Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-02 11:00 +0200
Re: Und jetzt der Härtetest Michael Bäuerle <michael.baeuerle@gmx.net> - 2023-07-02 15:33 +0200
Normalisierung? - Was geschieht hirbei? - do not ignore (was: Und jetzt der Härtetest) Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-02 15:58 +0200
Normalisierung? - Was geschieht hierbei? - do not ignore (was: Und jetzt der Härtetest) Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-02 16:01 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-02 16:11 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-02 16:26 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Heiko Rost <heiko.rost@gmx.de> - 2023-07-02 16:26 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-02 16:54 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Thomas Barghahn <Th.Barghahn@t-online.de> - 2023-07-02 16:56 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-02 20:21 +0200
Unicode-Normalisierung (was: Normalisierung? - Was geschieht hierbei? - do not ignore ) Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-02 16:58 +0200
Normalisierung? - Was geschieht hierbei? (was: Normalisierung? - Was geschieht hierbei? - do not ignore ) Michael Bäuerle <michael.baeuerle@gmx.net> - 2023-07-02 18:37 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore (was: Und jetzt der Härtetest) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-02 18:24 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-02 19:40 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-02 20:12 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-03 09:13 +0200
Re: Normalisierung? - Was geschieht hierbei? - do not ignore Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-03 10:07 +0200
Re: Und jetzt der Härtetest Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-02 16:04 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-02 18:13 +0200
Re: Und jetzt der Härtetest Marcel Logen <333200007110-0201@ybtra.de> - 2023-07-01 16:31 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 19:46 +0200
Re: Und jetzt der Härtetest Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 12:42 +0200
Weiterer Betreffwechsel (was: Betreffwechsel ) Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-07-01 19:07 +0200
Re: Neue Testreihe automatische Subject-Korrektur Martin Schnitkemper <news.trash.5.mschnitk@spamgourmet.com> - 2023-06-30 18:53 +0200
csiph-web