The parser can deal with ISO Latin-1 and UTF-8 encoded files, doing
decoding based on the encoding argument provided to
set_sgml_parser/2
or, for XML, based on the encoding
attribute of the XML
header. The parser reads from SWI-Prolog streams, which also provide
encoding handling. Therefore, there are two modes for parsing. If the
SWI-Prolog stream has encoding octet
(which is the default
for binary streams), the decoder of the SGML parser will be used and
positions reported by the parser are octet offsets in the stream. In
other cases, the Prolog stream decoder is used and offsets are character
code counts.