ユニバイトやマルチバイトによるテキスト表現は異なる文字コードを使用します。ユニバイト表現にたいして有効な文字コードの範囲は0から#xFF
(255)でこれは1バイト範囲に収まる値です。マルチバイト表現にたいして有効な文字コードの範囲は0から#x3FFFFF
です。このコード空間では値0から#x7F
(127)がASCII文字用、値#x80
(128)から#x3FFF7F
(4194175)が非ASCII文字用になります。
Emacsの文字コードは、Unicode標準のスーパーセット(superset:
上位集合)です。値0から#x10FFFF
(1114111)は同じコードポイントのUnicode文字に対応します。値#x110000
(1114112)から#x3FFF7F
(4194175)はUnicodeに統一されていない文字、値#x3FFF80
(4194176)から#x3FFFFF
(4194303)は8ビットrawバイトを表します。
これはcharcodeが有効な文字ならt
、それ以外はnil
をリターンする。
(characterp 65) ⇒ t
(characterp 4194303) ⇒ t
(characterp 4194304) ⇒ nil
この関数は有効な文字コードポイントが持ち得る最大の値をリターンする。
(characterp (max-char)) ⇒ t
(characterp (1+ (max-char))) ⇒ nil
この関数はUnicode名がstringであるような文字をリターンする。ignore-caseが非nil
ならstringのcase(大文字小文字)は無視する。stringが文字の名前でなければ、この関数はnil
をリターンする。
;; U+03A3 (= (char-from-name "GREEK CAPITAL LETTER SIGMA") #x03A3) ⇒ t
この関数はカレントバッファー内の文字位置posにあるバイトをリターンする。カレントバッファーがユニバイトなら、その位置のバイトをそのままリターンする。バッファーがマルチバイトなら、8ビットrawバイトは8ビットコードに変換される一方で、ASCII文字のバ値は文字コードポイントと同じになる。この関数はposにある文字が非ASCIIならエラーをシグナルする。
オプション引数stringはカレントバッファーのかわりに文字列からバイト値を得ることを意味する。