SYS-BYTE2CHAR(2) SYS-BYTE2CHAR(2) NAME byte2char, char2byte - convert between bytes and characters SYNOPSIS include "sys.m"; sys := load Sys Sys->PATH; byte2char: fn(buf: array of byte, n: int): (int, int, int); char2byte: fn(c: int, buf: array of byte, n: int): int; DESCRIPTION Byte2char converts a byte sequence to one Unicode character. Buf is an array of bytes and n is the index of the first byte to examine in the array. The returned tuple, say (c, length, status), specifies the result of the translation: c is the resulting Unicode character, status is non-zero if the bytes are a valid UTF sequence and zero otherwise, and length is set to the number of bytes consumed by the trans- lation. If the input sequence is not long enough to deter- mine its validity, byte2char consumes zero bytes; if the input sequence is otherwise invalid, byte2char consumes one input byte and generates an error character (Sys->UTFerror, 16r80), which prints in most fonts as a boxed question mark. Char2byte performs the inverse of byte2char. It translates a Unicode character, c, to a UTF byte sequence, which is placed in successive bytes starting at h.]ndnefernamlmth.]ntratsfernamlmt h&lmtlt;&4Hgt; h&lmtlt;&4H/gt; h&lmtlt;&4Hgt; h&lmtlt;&4H/gt; h,)2(ortni-sysdnefernamlmth,)2(ortni-systratsfernamlmth,)2(setybftu-sysdnefernamlmth,)2(setybftu-systratsfernamlmth)6(ftudnefernamlmth)6(ftutratsfernamlmt h&lmtlt;&4Hgt; h&lmtlt;&4H/gt;