Splitting Characters
====================
The functions in this section convert between characters and the byte
values used to represent them. For most purposes, there is no need to
be concerned with the sequence of bytes used to represent a character,
because Emacs translates automatically when necessary.
- Function: split-char character
Return a list containing the name of the character set of
CHARACTER, followed by one or two byte values (integers) which
identify CHARACTER within that character set. The number of byte
values is the character set's dimension.
(split-char 2248)
=> (latin-iso8859-1 72)
(split-char 65)
=> (ascii 65)
(split-char 128)
=> (eight-bit-control 128)
- Function: make-char charset &optional code1 code2
This function returns the character in character set CHARSET whose
position codes are CODE1 and CODE2. This is roughly the inverse
of `split-char'. Normally, you should specify either one or both
of CODE1 and CODE2 according to the dimension of CHARSET. For
example,
(make-char 'latin-iso8859-1 72)
=> 2248
If you call `make-char' with no BYTE-VALUES, the result is a
"generic character" which stands for CHARSET. A generic character is
an integer, but it is _not_ valid for insertion in the buffer as a
character. It can be used in `char-table-range' to refer to the whole
character set (Note:Char-Tables). `char-valid-p' returns `nil' for
generic characters. For example:
(make-char 'latin-iso8859-1)
=> 2176
(char-valid-p 2176)
=> nil
(char-valid-p 2176 t)
=> t
(split-char 2176)
=> (latin-iso8859-1 0)
The character sets ASCII, EIGHT-BIT-CONTROL, and EIGHT-BIT-GRAPHIC
don't have corresponding generic characters. If CHARSET is one of them
and you don't supply CODE1, `make-char' returns the character code
corresponding to the smallest code in CHARSET.