In Unicode programs, byte and character string processing are strictly separated. The operands of byte string processing must be byte-type data objects, and operands in character string processing must be character-type data objects. In non-Unicode programs, byte strings are normally handled in the same way as character strings.
In the statements for byte and character string processing, in Unicode programs, the distinction is made in the statements that are intended for both types of processing by the optional addition IN BYTE|CHARACTER MODE. In this case, IN CHARACTER MODE is the standard.
The addition IN BYTE|CHARACTER MODE is also used in the statements for determining length and offset:
In this case, the specifications are obligatory
There are relational operators for byte strings and for character strings. In Unicode programs, the latter can no longer be used for byte strings.
The description functions are divided into description functions for byte strings and description functions for character strings. In particular, in Unicode programs, strlen can now only be used for character-type arguments, while xstrlen is available for byte-type arguments.