Functions on this list take four arguments--the pathname of the file; an external format spec; a vector of element-type
(unsigned-byte 8) which contains the first bytes of the file; and a non-negative integer which is the maximum extent of buffer to be searched. This length argument is 0 in the case that the file does not exist, or the direction is
:output. They return an external format spec, which normally is either ef-spec unmodified, or the result of merging ef-spec with another external format spec via
See the entry for guess-external-format for details of how
*file-encoding-detection-algorithm* is used.
For files starting with
0xff 0xfe 0x00 0x00, both detect-utf32-bom and detect-unicode-bom may match it. detect-utf32-bom is called first so by default the encoding will be detected as
(:utf-32 :little-endian t). You can change this behavior by setting
*file-encoding-detection-algorithm* to a re-ordered list.
If you want open and so on, when opening a file for input, to inspect the attribute line and then fall back to a default if no attribute line is found, then set the variable to this value:
There are further examples in Guessing the external format.
LispWorks User Guide and Reference Manual - 20 Sep 2017