.. index:: single: character_set_protocol .. _character_set_protocol/0: .. rst-class:: right **protocol** ``character_set_protocol`` ========================== Character set protocol for converting between lists of character codes and lists of bytes. | **Availability:** | ``logtalk_load(character_sets(loader))`` | **Author:** Paulo Moura | **Version:** 1:0:0 | **Date:** 2026-04-05 | **Compilation flags:** | ``static`` | **Dependencies:** | (none) | **Remarks:** - Object names: Concrete object names are derived from the preferred IANA MIME names by lowercasing them and replacing hyphens with underscores. - IANA registry metadata: The metadata predicates reflect the IANA character set registry. When the registry does not define a distinct preferred MIME alias, the ``preferred_mime_name/1`` and ``name/1`` predicates return the same atom. - Unicode encodings: Unicode character sets use Unicode scalar values and do not emit or consume a byte order mark (BOM). | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: preferred_mime_name/1 .. _character_set_protocol/0::preferred_mime_name/1: ``preferred_mime_name/1`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Preferred MIME name for the character set according to the IANA registry. | **Compilation flags:** | ``static`` | **Template:** | ``preferred_mime_name(Name)`` | **Mode and number of proofs:** | ``preferred_mime_name(?atom)`` - ``zero_or_one`` ------------ .. index:: name/1 .. _character_set_protocol/0::name/1: ``name/1`` ^^^^^^^^^^ Registered character set name according to the IANA registry. | **Compilation flags:** | ``static`` | **Template:** | ``name(Name)`` | **Mode and number of proofs:** | ``name(?atom)`` - ``zero_or_one`` ------------ .. index:: alias/1 .. _character_set_protocol/0::alias/1: ``alias/1`` ^^^^^^^^^^^ Alias for the character set according to the IANA registry. | **Compilation flags:** | ``static`` | **Template:** | ``alias(Alias)`` | **Mode and number of proofs:** | ``alias(?atom)`` - ``zero_or_more`` ------------ .. index:: mibenum/1 .. _character_set_protocol/0::mibenum/1: ``mibenum/1`` ^^^^^^^^^^^^^ MIBenum value for the character set according to the IANA registry. | **Compilation flags:** | ``static`` | **Template:** | ``mibenum(MIBenum)`` | **Mode and number of proofs:** | ``mibenum(?integer)`` - ``zero_or_one`` ------------ .. index:: codes_to_bytes/2 .. _character_set_protocol/0::codes_to_bytes/2: ``codes_to_bytes/2`` ^^^^^^^^^^^^^^^^^^^^ Converts a list of character codes to the corresponding list of bytes in the character set when all codes are representable. | **Compilation flags:** | ``static`` | **Template:** | ``codes_to_bytes(Codes,Bytes)`` | **Mode and number of proofs:** | ``codes_to_bytes(+list(integer),--list(byte))`` - ``zero_or_one`` ------------ .. index:: bytes_to_codes/2 .. _character_set_protocol/0::bytes_to_codes/2: ``bytes_to_codes/2`` ^^^^^^^^^^^^^^^^^^^^ Converts a list of bytes in the character set to the corresponding list of character codes when the byte sequence is valid for that character set. | **Compilation flags:** | ``static`` | **Template:** | ``bytes_to_codes(Bytes,Codes)`` | **Mode and number of proofs:** | ``bytes_to_codes(+list(byte),--list(integer))`` - ``zero_or_one`` ------------ Protected predicates -------------------- (none) Private predicates ------------------ (none) Operators --------- (none)