.. _stdlib_unicode_text: ======================================================= Unicode normalization and canonical caseless comparison ======================================================= .. das:module:: unicode_text Module unicode_text +++++++++ Constants +++++++++ .. _global-unicode_text-UNICODE_TEXT_VERSION: .. das:attribute:: UNICODE_TEXT_VERSION = "17.0.0" UNICODE_TEXT_VERSION:string const .. _global-unicode_text-UNICODE_CASELESS_KEY_VERSION: .. das:attribute:: UNICODE_CASELESS_KEY_VERSION = "unicode-17.0.0-d145-1" UNICODE_CASELESS_KEY_VERSION:string const ++++++++++++++++++++++++++++++ Normalization and case folding ++++++++++++++++++++++++++++++ * :ref:`try_unicode_casefold (value: string; var result: string&) : bool ` * :ref:`try_unicode_caseless_key (value: string; var result: string&) : bool ` * :ref:`try_unicode_nfd (value: string; var result: string&) : bool ` .. _function-unicode_text_try_unicode_casefold_string_string_ref_: .. das:function:: try_unicode_casefold(value: string; result: string&) : bool Full default, locale-independent Unicode case folding. Invalid UTF-8 leaves result unchanged. :Arguments: * **value** : string * **result** : string\ & .. _function-unicode_text_try_unicode_caseless_key_string_string_ref_: .. das:function:: try_unicode_caseless_key(value: string; result: string&) : bool Unicode D145 canonical caseless key: NFD(casefold(NFD(value))). Invalid UTF-8 leaves result unchanged. Input and output may alias. Preserves accents; does not filter visual confusables or perform locale-specific casing. Record UNICODE_CASELESS_KEY_VERSION with persisted keys; future changes require explicit reindexing and collision handling. :Arguments: * **value** : string * **result** : string\ & .. _function-unicode_text_try_unicode_nfd_string_string_ref_: .. das:function:: try_unicode_nfd(value: string; result: string&) : bool Canonically decompose valid UTF-8 using Unicode17.0.0. Invalid UTF-8 leaves result unchanged. :Arguments: * **value** : string * **result** : string\ &