Next: , Previous: , Up: Non-ASCII Characters   [Contents][Index]


32.7 文字セット

Emacsの文字セット(character set、もしくはcharset)とは、それぞれの文字が数字のコードポイントに割り当てられれた文字セットのことです(Unicode標準ではこれを符号化文字集合(coded character set)と呼ぶ)。Emacsの各文字セットはシンボルであるような名前をもちます。1つの文字が任意の数の異なる文字セットに属することができますが、各文字セット内で異なるコードポイントをもつのが一般的でしょう。文字セットの例にはasciiiso-8859-1greek-iso8859-7windows-1255が含まれます。文字セット内で文字に割り当てられるコードポイントは、Emacs内のバッファーや文字列内で使用されるコードポイントとは通常は異なります。

Emacsは特別な文字セットをいくつか定義しています。文字セットunicodeはEmacsコードポイントが0..#x10FFFFの範囲のすべての文字セットを含みます。文字セットemacsはすべてのASCII、および非ASCII文字を含みます。最後にeight-bit文字セットは8ビットrawバイトを含みます。テキスト内でrawバイトを見つけたときにEmacsはこれを使用します。

Function: charsetp object

objectは文字セットを命名するシンボルならt、それ以外はnilをリターンする。

Variable: charset-list

値はすべての定義済み文字セットの名前のリスト。

Function: charset-priority-list &optional highestp

この関数はすべての定義済み文字セットの優先順にソートされたリストをリターンする。highestpが非nilなら、この関数はもっとも優先度の高い文字セット1つをリターンする。

Function: set-charset-priority &rest charsets

この関数はcharsetsをもっとも高い優先度の文字セットにする。

Function: char-charset character &optional restriction

この関数はcharacterが属する文字セットで、もっとも優先度の高い文字セットの名前をリターンする。ただしASCII文字は例外であり、この関数は常にasciiをリターンする。

restrictionが非nilなら、それは検索する文字セットのリストであること。かわりにコーディングシステムも指定でき、その場合にはそのコーディングシステムによりサポートされている必要がある(Coding Systemsを参照)。

Function: charset-plist charset

この関数は文字セットcharsetのプロパティをリターンする。たとえcharsetがシンボルだったとしても、これはそのシンボルのプロパティリストと同じではない。文字セットプロパティにはドキュメント文字列、短い名前等、その文字セットに関する重要な情報が含まれる。

Function: put-charset-property charset propname value

この関数はcharsetのプロパティpropnameに与えられたvalueをセットする。

Function: get-charset-property charset propname

この関数はcharsetのプロパティpropnameの値をリターンする。

Command: list-charset-chars charset

このコマンドは文字セットcharset内の文字のリストを表示する。

Emacsは文字の内部的な表現と、その文字の特定の文字セット内でのコードポイントを相互に変換することができます。以下はこれらをサポートするための関数です。

Function: decode-char charset code-point

この関数はcharset内でcode-pointに割り当てられた文字をEmacsの対応する文字にデコードしてリターンする。そのコードポイントの文字がcharsetに含まれなければ値はnilcode-pointがLisp整数(most-positive-fixnumを参照)に収まらなければ、コンスセル(high . low)で指定できる。ここでlowはその値の下位来る16ビット、highは上位16ビット。

Function: encode-char char charset

この関数はcharset内で文字charに割り当てられたコードポイントをリターンする。結果がLisp整数に収まらなければ、上述のdecode-charの2つ目の引数のようにコンスセル(high . low)としてリターンされる。charsetcharにたいするコードポイントをもたなければ値はnil

以下の関数は文字セット内の文字の一部、またはすべてにたいして特定の関数を適用するのに有用です。

Function: map-charset-chars function charset &optional arg from-code to-code

charset内の文字にたいしてfunctionを呼び出す。functionは2つの引数で呼び出される。1つ目はコンスセル(from . to)であり、fromtoは文字セット内に含まれる文字の範囲。argは2つ目の引数としてfunctionに渡される。

デフォルトではfunctionに渡されるコードポイントの範囲にはcharset内のすべての文字が含まれるが、オプション引数from-codeto-codeにより、それはcharsetの2つのコードポイント間にある文字範囲に制限される。from-codeto-codeのいずれかがnilの場合のデフォルトは、charsetのコードポイントの最初か最後。