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

Stefan Csomor csomor at
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,


   Von: omnisdev-en <omnisdev-en-bounces at> im Auftrag
   von Das Goravani <goravanis at>
   Datum: Freitag, 15. April 2022 um 19:59
   An: OmnisDev List - English <omnisdev-en at>
   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
   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]
   Start a new message -> [2]mailto:omnisdev-en at


   2. mailto:omnisdev-en at

More information about the omnisdev-en mailing list