:utf-32 &key use-replacement little-endian
:utf-32le &key use-replacement
:utf-32be &key use-replacement
The external format :utf-32
and its variants implement UTF-32 format, which means reading and writing 32-bit chunks as characters.
:utf-32-native
and :utf-32-reversed
are the actual implementation formats. They implement UTF-32 with the native byte order (:utf-32-native
) or the reversed byte order (:utf-32-reversed
).
:utf-32le
and :utf-32be
implement UTF-32 with little-endian (:utf-32le
) and big-endian (:utf-32be
) byte order. The system maps them to one of :utf-32-native
or :utf-32-reversed
as appropriate.
:utf-32
implements UTF-32 with control over the byte order. This format maps to one of :utf-32-native
or :utf-32-reversed
as appropriate. If little-endian is supplied, it determines the byte order. Otherwise, if it is used for opening a file, the system checks whether the file starts with the BOM (Byte Order Mark), and uses it if found. Otherwise the big-endian order is used. The system uses the required byte order and the native byte order of the computer it executes on to decide whether to use :utf-32-native
or :utf-32-reversed
.
If the :utf-32
formats encounter a surrogate code point or a character code which is too large, they by default signal an error of type external-format-error. If use-replacement is non-nil, they replace the illegal input by the replacement character. When use-replacement is non-nil these formats never signal an error.
These formats were new in LispWorks 7.0. In LispWorks 6.1 and earlier versions there is an undocumented external format character
that works similarly to :utf-32-native
in LispWorks 7.0 and later. This is now mapped to :utf-32-native
to avoid errors in existing code, and should not be used in new code.
LispWorks User Guide and Reference Manual - 20 Sep 2017