Main Page   Modules   Data Structures   Globals   Appendix  

文字セット
[シェル API]

文字セットオブジェクトとそれに関する API. [詳細]

変数: 文字セットを表現する定義済みシンボル.

以下の各シンボルは、定義済み文字セットを表現する。

MSymbol Mcharset_ascii
 ASCII 文字セットを表現するシンボル.
MSymbol Mcharset_iso_8859_1
 ISO/IEC 8859-1:1998 文字セットを表現するシンボル.
MSymbol Mcharset_unicode
 Unicode 文字セットを表現するシンボル.
MSymbol Mcharset_m17n
 全文字を含む文字セットを表現するシンボル.
MSymbol Mcharset_binary
 正しくデコードできない文字の文字セットを表現するシンボル.

変数: mchar_define_charset 用のパラメータ・キー

これらは、関数 mchar_define_charset() 用のパラメータ・キーとして使われるシンボルである。 詳しくはこの関数の解説を参照のこと。

MSymbol Mmethod
MSymbol Mdimension
MSymbol Mmin_range
MSymbol Mmax_range
MSymbol Mmin_code
MSymbol Mmax_code
MSymbol Mascii_compatible
MSymbol Mfinal_byte
MSymbol Mrevision
MSymbol Mmin_char
MSymbol Mmapfile
MSymbol Mparents
MSymbol Msubset_offset
MSymbol Mdefine_coding
MSymbol Maliases

変数: 文字セットのメソッド指定に使われるシンボル

これらは、文字セットの メソッド を指定するための定義済みシンボルであり、文字セットの Mmethod パラメータの値となることができる。 この値は関数 mchar_define_charset() の引数として使われる。

メソッドとは、コードポイントと文字コードを相互変換する際の方式のことである。 詳しくは関数 mchar_define_charset() の解説を参照のこと。

MSymbol Moffset
 オフセット型のメソッドを示すシンボル.
MSymbol Mmap
 マップ型のメソッドを示すシンボル.
MSymbol Munify
 ユニファイ型のメソッドを示すシンボル.
MSymbol Msubset
 サブセット型のメソッドを示すシンボル.
MSymbol Msuperset
 スーパーセット型のメソッドを示すシンボル.

マクロ定義

#define MCHAR_INVALID_CODE
 無効なコードポイント.

関数

MSymbol mchar_define_charset (const char *name, MPlist *plist)
 文字セットを定義する.
MSymbol mchar_resolve_charset (MSymbol symbol)
 文字セット名を解決する.
int mchar_list_charset (MSymbol **symbols)
 文字セットを表わすシンボルを列挙する.
int mchar_decode (MSymbol charset_name, unsigned code)
 コードポイントをデコードする.
unsigned mchar_encode (MSymbol charset_name, int c)
 文字コードをエンコードする.
int mchar_map_charset (MSymbol charset_name, void(*func)(int from, int to, void *arg), void *func_arg)
 指定した文字セットのすべての文字に対して関数を呼ぶ.

変数

MSymbol Mcharset
 シンボル Mcharset.

説明

m17n ライブラリは、符号化文字集合 (CCS) を 文字セット と呼ぶオブジェクトで表現する。 m17n ライブラリは多くの符号化文字集合をあらかじめサポートしているし、アプリケーションプログラムが独自に文字セットを追加することも可能である。 一つの文字は複数の文字セットに属してもよい。

m17n ライブラリは、以下の概念を区別している:

各文字セットオブジェクトは、その文字セットに属する文字のコードポイントと文字コードとの間の変換を規定する。 コードポイントから文字コードへの変換を デコード と呼び、文字コードからコードポイントへの変換を エンコード と呼ぶ。

マクロ定義

#define MCHAR_INVALID_CODE

マクロ MCHAR_INVALID_CODE は無効なコードポイントを示す。


関数

MSymbol mchar_define_charset ( const char *  name,
MPlist plist 
)

関数 mchar_define_charset() は新しい文字セットを定義し、それを name という名前を持つシンボル経由でアクセスできるようにする。 plist は定義される文字セットのパラメータを以下のように指定する。

戻り値:
処理が成功すれば、mchar_define_charset() は name という名前のシンボルを返す。そうでなければ Mnil を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_CHARSET

MSymbol mchar_resolve_charset ( MSymbol  symbol  ) 

関数 mchar_resolve_charset()symbol が文字セットを示していればそれを返す。

そうでなければ、symbol を文字セット名として正規化し、それが文字セットを示していていれば正規化したものを返す。 そうでなければ、Mnil を返す。

int mchar_list_charset ( MSymbol **  symbols  ) 

関数 mchar_list_charsets() は、文字セットを示すシンボルを並べた配列を作り、symbols でポイントされた場所にこの配列へのポインタを置き、配列の長さを返す。

int mchar_decode ( MSymbol  charset_name,
unsigned  code 
)

関数 mchar_decode() は、シンボル charset_name で示される文字セット内の code というコードポイントをデコードして文字コードを得る。

戻り値:
デコードが成功すれば、mchar_decode() はデコードされた文字コードを返す。 そうでなければ -1 を返す。
参照:
mchar_encode()

unsigned mchar_encode ( MSymbol  charset_name,
int  c 
)

関数 mchar_encode() は、文字コード c をエンコードしてシンボル charset_name で示される文字セット内におけるコードポイントを得る。

戻り値:
エンコードが成功すれば、mchar_encode() はエンードされたコードポイントを返す。 そうでなければ MCHAR_INVALID_CODE を返す。
参照:
mchar_decode()

int mchar_map_charset ( MSymbol  charset_name,
void(*)(int from, int to, void *arg)  func,
void *  func_arg 
)

関数 mcharset_map_chars() は charset_name という名前を持つ文字セット中のすべての文字に対して func を呼ぶ。 呼び出しは一文字毎ではなく、連続した文字のまとまり単位で行なわれる。

関数 func にはfrom, to, arg の3引数が渡される。fromtocharset 中の文字コードの範囲を指定する。argfunc_arg と同じである。

戻り値:
処理に成功すれば mcharset_map_chars() は 0 を返す。 そうでなければ -1 を返し、外部変数 merror_code にエラーコードを設定する。
エラー:
MERROR_CHARSET


変数

MSymbol Mcharset

デコードされた M-text は、キーが Mcharset であるようなテキストプロパティを持つ。 シンボル Mcharset"charset" という名前を持つ。

MSymbol Mcharset_ascii

シンボル Mcharset_ascii"ascii" という名前を持ち、 ISO 646, USA Version X3.4-1968 (ISO-IR-6) 文字セットを表現する。

MSymbol Mcharset_iso_8859_1

シンボル Mcharset_iso_8859_1"iso-8859-1" という名前を持ち、ISO/IEC 8859-1:1998 文字セットを表現する。

MSymbol Mcharset_unicode

シンボル Mcharset_unicode"unicode" という名前を持ち、Unicode 文字セットを表現する。

MSymbol Mcharset_m17n

シンボル Mcharset_m17n"m17n" という名前を持ち、 m17n ライブラリが扱う全ての文字を含む文字セットを表現する。

MSymbol Mcharset_binary

シンボル Mcharset_binary"binary" という名前を持ち、偽の (fake) 文字セットを表現する。 デコード関数は、M-text のテキストプロパティとして、無効なバイト(シークエンス)に遭遇した位置を付加する。

詳細は コード変換 参照のこと。

MSymbol Mmethod

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mdimension

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmin_range

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmax_range

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmin_code

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmax_code

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mascii_compatible

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mfinal_byte

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mrevision

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmin_char

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mmapfile

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mparents

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Msubset_offset

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Mdefine_coding

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Maliases

関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。

MSymbol Moffset

シンボル Moffset"offset" という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、コードポイントと文字セットの文字コードの間の変換が以下の式に従って行われることを意味する。

文字コード = コードポイント - MIN-CODE + MIN-CHAR

ここで、MIN-CODE は文字セットの Mmin_code パラメータの値であり、MIN-CHAR は Mmin_char パラメータの値である。

MSymbol Mmap

シンボル Mmap"map" という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、コードポイントと文字セットの文字コードの間の変換がマップを参照することによって行われることを意味する。 マップは Mmapfile パラメータとして与えなければならない。

MSymbol Munify

シンボル Minherit は "unify" という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、コードポイントと文字セットの文字コードの間の変換が、マップの参照とオフセットの組み合わせによって行われることを意味する。 マップは Mmapfile パラメータとして与えなければならない。 この種の各文字セットには、全文字に対して連続するコードスペースがそれぞれ割り当てられる。

コードポイントがマップに含まれていれば、変換はマップ参照によって行われる。 そうでなければ、以下の式に従う。

CHARACTER-CODE = CODE-POINT - MIN-CODE + LOWEST-CHAR-CODE

ここで、MIN-CODE は文字セットの Mmin_code パラメータの値であり、 LOWEST-CHAR-CODE は割り当てられたコードスペースの最も小さい文字コードである。

MSymbol Msubset

シンボル Msubset"subset" という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、この文字セットが別の文字セット(親文字セット)の部分集合であることを意味する。 親文字セットは Mparents パラメータによって与えられなくてはならない。 コードポイントと文字セットの文字コードの間の変換は、概念的には以下の式に従う。

CHARACTER-CODE = PARENT-CODE (CODE-POINT) + SUBSET-OFFSET

ここで PARENT-CODE は CODE-POINT の親文字セット中での文字コードを返す擬関数であり、SUBSET-OFFSET は Msubset_offset パラメータで与えられる値である。

MSymbol Msuperset

シンボル Msuperset"superset" という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、この文字セットが別の文字セット(親文字セット)の上位集合であることを意味する。 親文字セットは Mparents パラメータによって与えられなくてはならない。


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark