AW: What is the nfd() function really doing?

Stefan Csomor csomor at advancedconcepts.ch
Fri Apr 15 21:08:16 UTC 2022


   Hi Das


   It’s about Unicode ‘normal forms’ representing certain symbols, eg in
   German we have umlauts like äöü, when they are composed, eg. the ‘a’
   and the trema ‘¨’ is 1 single character in Unicode. When they are
   decomposed it is 2 characters one ‘a’ and one trema ‘¨’ and they are
   visually composed together so that it looks the same as the composed.
   The macOS filesystem eg has its filenames always stored decomposed. You
   have to know this when comparing filenames as strings, because the
   composed and the decomposed ä are not identical, so you have to compare
   the strings in the same ‘normal form’.


   Hope this clears up things a little bit.


   Best Regards,


   Stefan


   Von: omnisdev-en <omnisdev-en-bounces at lists.omnis-dev.com> im Auftrag
   von Das Goravani <goravanis at gmail.com>
   Datum: Freitag, 15. April 2022 um 19:59
   An: OmnisDev List - English <omnisdev-en at lists.omnis-dev.com>
   Betreff: What is the nfd() function really doing?

   What does the nfd() function do in plain common English please?
   The online help says:
   Carries out the canonical decomposition of the string and returns the
   normalized string.
   What does that mean, I guess I’m locking up on the term "canonical
   decomposition"
   I tried looking it up and found that nfd() is a method of decomposing
   text characters into their base parts but I don’t understand.
   I’m finding this function used in the IMAP Worker Object Demo by Omnis.
   They apply nfd() to Mailbox names.
   I think mailbox names are really set, small, already "decomposed" as
   far as I can tell. Names like
   Inbox, Drafts, Trash, Sent items, Spam
   Couldn’t get much smaller or different, so I don’t understand
   The term is heavily used in Algebra, and is mathematical
   Any help appreciated.
   Das Goravani
   _____________________________________________________________
   Manage your list subscriptions at [1]https://lists.omnis-dev.com
   Start a new message -> [2]mailto:omnisdev-en at lists.omnis-dev.com

References

   1. https://lists.omnis-dev.com/
   2. mailto:omnisdev-en at lists.omnis-dev.com


More information about the omnisdev-en mailing list