Next: Scanning Charsets, Previous: Chars and Bytes, Up: Non-ASCII Characters
本節の関数は、文字とそれを表現するために用いられるバイト値のあいだの 変換を行います。 ほとんどの目的に関しては、Emacsが必要に応じて自動的に行うため、 文字を表現するためのバイト列を扱う必要はありません。
この関数は、文字characterを表現するために必要なバイト数を返す。 これは、文字characterが属する文字集合だけに依存し、 その文字集合(see Character Sets)の次元とその導入列の和に等しい。
(char-bytes 2248) 2 (char-bytes 65) 1 (char-bytes 192) 1マルチバイト表現とユニバイト表現のどちらに対しても この関数で正しい結果を得られるのは、 2つの表現で用いられる非ASCII文字コードに重なりがないからである。
文字characterの文字集合の名前に続けて、 その文字集合でcharacterを識別する1バイトか2バイトの値(整数)から 成るリストを返す。 バイト値の個数はその文字集合の次元である。
(split-char 2248) (latin-iso8859-1 72) (split-char 65) (ascii 65)ユニバイトの非ASCII文字は、 文字集合
ascii
の一部とみなす。(split-char 192) (ascii 192)
この関数は、文字集合charsetにおいて byte-valuesで識別される文字を返す。 これは、
split-char
のほぼ逆関数にあたる。 通常、文字集合charsetの次元に応じて、 1つか2つのbyte-valuesを指定する。 たとえばつぎのとおり。(make-char 'latin-iso8859-1 72) 2248
byte-valuesを指定せずにmake-char
を呼び出すと、
その結果は文字集合charsetを代表する
汎用文字(generic character)である。
汎用文字は整数であるが、文字としてバッファに挿入するには
正しくないものである。
1つの文字集合全体を表すためにchar-table-range
で使える
(see Char-Tables)。
char-valid-p
は汎用文字に対してはnil
を返す。
たとえばつぎのとおり。
(make-char 'latin-iso8859-1) 2176 (char-valid-p 2176) nil (split-char 2176) (latin-iso8859-1 0)