ユニバイトおよびマルチバイトのテキスト表現では、それぞれ異なる文字コードが使用されます。ユニバイト表現で有効な文字コードは0から#xFF
(255)までであり、これは1バイトに収まる値です。マルチバイト表現で有効な文字コードは0から#x3FFFFFまでです。このコード空間において、0から#x7F (127)までの値はASCII文字用であり、#x80
(128)から#x3FFF7F (4194175)までの値は非ASCII文字用です。
Emacsの文字コードは、Unicode標準のスーパーセットです。0から#x10FFFF
(1114111)までの値は、同一のコードポイントを持つUnicode文字に対応し、#x110000
(1114112)から#x3FFF7F
(4194175)までの値はUnicodeと統一されていない文字を、#x3FFF80
(4194176)から#x3FFFFF (4194303)までの値は8ビットの生バイトを表します。
これは、charcode が有効な文字であれば t
を、そうでなければ nil を返します。
(characterp 65)
⇒ t
(characterp 4194303)
⇒ t
(characterp 4194304)
⇒ nil
この関数は、Emacsにおいて有効な文字コードポイントが取り得る最大値を返します。オプション引数 unicode が nil
以外の場合、Unicode標準で定義されている最大の文字コードポイント(Emacsがサポートする最大コードポイントよりも小さい値)を返します。
(characterp (max-char))
⇒ t
(characterp (1+ (max-char)))
⇒ nil
この関数は、Unicode名が string である文字を返します。ignore-case が nil 以外の場合、string では大文字小文字は区別されません。string
が文字を指定していない場合、この関数は nil を返します。
;; U+03A3
(= (char-from-name "GREEK CAPITAL LETTER SIGMA") #x03A3)
⇒ t
この関数は char の Unicode 名を返します。char が文字でないか、Unicode 名を持たない場合は nil を返します。
この関数は、現在のバッファの文字位置 pos にあるバイトを返します。現在のバッファがユニバイトの場合、これは文字通りその位置にあるバイトとなります。バッファがマルチバイトの場合、ASCII 文字のバイト値は文字コードポイントと同じになりますが、8ビットの生バイトは対応する8ビットコードに変換されます。pos の文字が ASCII 以外である場合、この関数はエラーを通知します。
オプション引数 string は、現在のバッファではなく、その文字列からバイト値を取得することを意味します。