All Manuals > LispWorks® User Guide and Reference Manual > 36 The EXTERNAL-FORMAT Package

:utf-16

:utf-16be

:utf-16le

:utf-16-native

:utf-16-reversed External Formats

Summary

Implement translations according to the UTF-16 standard of Unicode.

Package

keyword

Signatures

:utf-16 &key use-replacement little-endian

:utf-16be &key use-replacement

:utf-16le &key use-replacement

:utf-16-native &key use-replacement

:utf-16-reversed &key use-replacement

Arguments
use-replacement
A generalized boolean.
little-endian
A generalized boolean.
Description

The external format :utf-16 and variants implement translations according to the UTF-16 standard of Unicode.

The variants differ only in their treatment of byte order.

The parameter use-replacement is a boolean which defaults to nil. It controls what happens when reading encounters an illegal combination. Illegal combinations are either a leading surrogate (#xd800 to #xdbff) not followed by a trailing surrogate (#xdc00 to #xdfff), or a trailing surrogate not following a leading surrogate. By default, the input code signals an error of type external-format-error. If use-replacement is non-nil, the input code replaces the error byte or pair of bytes by the replacement character (#xfffd).

:utf-16-native and :utf-16-reversed implement UTF-16 in the native or the reverse of the byte order of the computer that they are executing on.

:utf-16be and :utf-16le implement the UTF-16BE and UTF-16LE standard format, that is UTF-16 big-endian and UTF-16 little-endian. LispWorks maps these to either of :utf-16-native or :utf-16-reversed.

:utf-16 implements the UTF-16 standard. The byte order defaults to big-endian byte order.

When opening a file with :external-format :utf-16 (without supplying little-endian), LispWorks checks for the existence of the BOM (Byte Order Mark) in the beginning of the file, and if there is a BOM uses it to determine the right byte order. Otherwise, it uses big-endian (:utf-16be). There are no checks for a BOM in other situations.

Compatibility notes

These formats were new in LispWorks 7.0.

In LispWorks 6.1 and earlier versions the :unicode external format is the format to read 16-bit characters.

See also

26.6 External Formats to translate Lisp characters from/to external encodings
26.6.2 16-bit External formats guide


LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:34