This package wraps the utf8proc
library, providing up-to-date inspection and transformation of Unicode
strings and atoms. It is the foundation for SWI-Prolog's normalisation
forms (NFC, NFD, NFKC, NFKD), case folding, grapheme-cluster iteration
(UAX#29), and per-code-point property lookup (general category, bidi
class, display width, combining class, case mappings, ...). The public
Prolog API is exported from library(unicode); see the predicates
unicode_nfc/2, unicode_property/2, atom_graphemes/2, and friends
for details.
A second library, library(unicode_security), ships the
UTS #39 security helpers
(confusable skeleton, mixed-script resolution, identifier restriction
levels) and UAX #24 script
properties. Its tables are derived from the Unicode Character Database
files under data/ by etc/gen_uts39.pl; the generated
uts39_data.{c,h} is checked in. After a UCD version bump, refresh
both with ninja regen-uts39 in the build directory.
This is a git submodule of the main
swi-prolog/swipl-devel
repository. It builds only when the system has libutf8proc installed
(available in every major package manager); the upstream utf8proc source
is no longer vendored. Issues and pull requests specific to this binding
belong here; Unicode-data bugs should be reported upstream at the
utf8proc tracker.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.