以下はコーディングシステムと連携するLisp機能です:
この関数はすべてのコーディングシステムの名前(シンボル)をリターンする。base-onlyが非nil
なら、値にはベースコーディングシステムだけが含まれる。それ以外ならエイリアス、およびバリアントコーディングシステムも同様に含まれる。
この関数はobjectがコーディングシステムの名前ならt
、またはnil
をリターンする。
この関数はcoding-systemの有効性をチェックする。有効ならcoding-systemをリターンする。coding-systemがnil
なら、この関数はnil
をリターンする。それ以外の値にたいしてはerror-symbol
がcoding-system-error
であるようなエラーをシグナルする(signalを参照)。
この関数は行末(eolとも言う)をcoding-systemで使用されるタイプに変換する。coding-systemが特定のeol変換を指定する場合にはリターン値は0、1、2のいずれかであり、それらは順にunix
、dos
、mac
を意味する。coding-systemが明示的にeol変換を指定しなければ、リターン値は以下のようにそれぞれが可能なeol変換タイプをもつようなコーディングシステムのベクター:
(coding-system-eol-type 'latin-1) ⇒ [latin-1-unix latin-1-dos latin-1-mac]
この関数がベクターをリターンしたら、Emacsはテキストのエンコードやデコードプロセスの一部として使用するeol変換を決定するだろう。デコードではテキストの行末フォーマットは自動検知され、eol変換はそれに適合するようセットされる(DOSスタイルのCRLFフォーマットは暗黙でeol変換にdos
をセットする)。エンコードにたいしては適切なデフォルトコーディングシステム(buffer-file-coding-system
にたいするbuffer-file-coding-system
のデフォルト値)、または背景にあるプラットフォームにたいして適切なデフォルトeol変換が採用される。
この関数はcoding-systemと似ているがeol-type
で指定されたeol変換の異なるコーディングシステムをリターンする。eol-typeはunix
、dos
、mac
、またはnil
であること。これがnil
ならリターンされるコーディングシステムは、データのeol変換により決定される。
eol-typeはunix
、dos
、mac
を意味する0、1、2でもよい。
この関数はeol-codingの行末変換と、text-codingのテキスト変換を使用するコーディングシステムをリターンする。text-codingがnil
ならこれはundecided
、またはeol-codingに対応するバリアントの1つをリターンする。
この関数はfromとtoの間のテキストのエンコードに使用可能なコーディングシステムのリストをリターンする。このリスト内のすべてのリストは、そのテキスト範囲内にあるすべてのマルチバイト文字を安全にエンコードできる。
そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)
をリターンする。
この関数はstringのテキストのエンコードに使用可能な、コーディングシステムのリストをリターンする。このリスト内のすべてのリストはstringにあるすべてのマルチバイト文字を安全にエンコードできる。そのテキストがマルチバイト文字を含まれなければ、この関数はリスト(undecided)
をリターンする。
この関数はリストcharsets内のすべての文字セットのエンコードに使用可能なコーディングシステムのリストをリターンする。
この関数はリストcoding-system-list
内のコーディングシステムがstartとendの間のリージョン内にあるすべての文字をエンコード可能かどうかをチェックする。このリスト内のすべてのコーディングシステムが指定されたテキストをエンコード可能なら、この関数はnil
をリターンする。ある文字をエンコードできないコーディングシステムがある場合には、各要素が(coding-system1
pos1 pos2
…)
という形式のalistが値となる。これはcoding-system1がバッファーの位置pos1、pos2、...にある文字をエンコードできないことを意味する。
startは文字列かもしれず、その場合にはendは無視されてリターン値はバッファー位置のかわりに文字列のインデックスを参照することになる。
この関数はstartからendのテキストのデコードに適したコーディングシステムを選択する。このテキストはバイトシーケンス、すなわちユニバイトテキスト、ASCIIのみのマルチバイトテキスト、8ビット文字のシーケンスであること(明示的なエンコードとデコードを参照)。
この関数は通常はスキャンしたテキストのデコーディングを処理可能なコーディングシステムのリストをリターンする。これらのコーディングシステムは優先度降順でリストされる。しかしhighestが非nil
なら、リターン値はもっとも高い優先度のコーディングシステムただ1つとなる。
リージョンにISO-2022のESC
のようなISO-2022制御文字を除いてASCII文字だけが含まれる場合には値はundecided
、(undecided)
、またはテキストから推論可能ならeol変換を指定するバリアントとなる。
リージョンにnullバイトが含まれる場合には、あるコーディングシステムによりエンコードされたテキストがリージョン内に含まれる場合でも値はno-conversion
となる。
この関数はdetect-coding-region
と似ているがバッファー内のバイトのかわりにstringのコンテンツを処理する点が異なる。
この変数が非nil
値をもつなら、リージョンや文字列のエンコーディング検出時にnullバイトを無視する。これによりIndexノードをもつInfoファイルのようなnullバイトを含むテキストのエンコーディングを正しく検出できる。
この変数が非nil
値をもつなら、リージョンや文字列のエンコーディング検出時にISO-2022エスケープシーケンスを無視する。結果としてこれまでいくつかのISO-2022エンコーディングにおいてエンコード済みと検出されていたテキストがなくなり、バッファー内ですべてのエスケープシーケンスが可視になる。警告:
この変数の使用には特に注意を払うこと。なぜならEmacsディストリビューション内で多くのファイルがISO-2022エンコーディングを使用するからである。
この関数はcoding-systemがサポートする文字セット(文字セットを参照)のリストをリターンする。リストすべき文字セットを非常に多くサポートするいくつかのコーディングシステムでは特別な値がリストされる:
(emacs)
。
(unicode)
。
iso-2022
。
emacs-mule
。
サブプロセスへの入出力に使用されるコーディングシステムのチェックやセットの方法についてはProcess
Information、特に関数process-coding-system
やset-process-coding-system
の説明を参照してください。