I saw that with stable version of 9.0.x now also supplementary Unicode characters (i.e., >U+FFFF) are supported in Windows. Thanks for that.
I’ve done some checks with Windows 64 bit version of SWI-Prolog 9.0.3 with such Unicode characters and found following issues:
xml_quote_attribute/2 does not create the XML entities correctly on Windows. It converts the high and low surrogates separately, which creates invalid content:
?- xml_quote_attribute('🙂',X).
Windows:
X = '��'.
Linux:
X = '🙂'.
string_length/2 on atoms does not count correctly the number of characters (Unicode codepoints), but atom_length/2 does. According to documentation they should be functionally equivalent.
?- atom_length('🙂',AL),string_length('🙂',SL).
Windows:
AL = 1, SL = 2.
Linux:
AL = SL, SL = 1.