The ECL implementation of strings is ANSI Common-Lisp compliant. There are basically four string types as shown in Table 16.1. As explained in Chapter 13, when Unicode support is disabled, character and base-character are the same type and the last two string types are equivalent to the first two.
Table 16.1. Common Lisp string types
|string||(array character (*))||8 or 32 bits per character, adjustable.|
|simple-string||(simple-array character (*))||8 or 32 bits per character, not adjustable nor displaced.|
|base-string||(array base-char (*))||8 bits per character, adjustable.|
|simple-base-string||(simple-array base-char (*))||8 bits per character, not adjustable nor displaced.|
It is important to remember that strings with unicode characters can only be printed readably when the external format supports those characters. If this is not the case, ECL will signal a serious-condition. This condition will abort your program if not properly handled.