Next: Language Environments, Up: International [Contents][Index]
国際化文字セットとスクリプトのユーザーは、ファイルを保存するために、多少の差はありますが、標準化された多くのコーディングシステムを確立しています。これらのコーディングシステムは通常はマルチバイト(multibyte)で、これは1つの非ASCII文字を表すのに、2つ以上のバイトシーケンスを対応させることを意味します。
Emacsは、内部的にはUnicode標準のスーパーセットである、マルチバイト文字エンコーディングを使用します。この内部的なエンコーディングは、ほとんどすべての既知のスクリプトを、1つのバッファーまたは文字列に混成することを可能にします。Emacsはファイルを読み書きしたり、サブプロセスとデータをやりとりするとき、このマルチバイト文字エンコーディングと、他のさまざまなコーディングシステムをコード変換します。
コマンドC-h h
(view-hello-file
)は、ファイルetc/HELLOを表示します。これは、多くの異なる言語で、“hello”をどのように記述するかを、さまざまな文字で例示するファイルです。もしもある文字が端末で表示できないときは、それらの文字は‘?’か、中抜きのボックスで表示されます。
これらの文字セットを使う国のキーボードでも、一般的にはすべての文字に対応するキーはもっていません。キーボードがサポートしない文字は、C-q
(quoted-insert
)、またはC-x 8 RET
(insert-char
)を使って挿入することができます。Inserting Textを参照してください。Emacsはさまざまなインプットメソッド(IM: input
methods)をサポートします。これはある字体の文字をタイプするのを簡単にするもので、通常1つの字体または言語に1つです。Input Methodsを参照してください。
プレフィクスキーC-x RETは、マルチバイト文字、コーディングシステム、インプットメソッドに属するコマンドにたいして使用されます。
コマンドC-x =
(what-cursor-position
)は、ポイント位置にある文字の情報を表示します。文字の位置に加えて、Position Infoで説明したように、このコマンドはその文字がどのようにエンコードされているかを表示します。たとえば、このコマンドは文字‘c’に大して、以下のような行をエコーエリアに表示します:
Char: c (99, #o143, #x63) point=28062 of 36168 (78%) column=53
‘Char:’の後ろの4つの値は、ポイント位置の文字を説明するためのもので、1つ目はその文字自身、その後ろに文字コードを10進(decimal)、8進(octal)、16進(hex)で表示します。非ASCIIのマルチバイト文字の場合、バッファーのコーディングシステムでその文字を安全に1バイトでエンコードできる場合は、‘file’とそのバッファーのコーディングシステムで表した文字コードの16進表記が続きます。その文字のエンコーディングが1バイトより長い場合、Emacsは‘file ...’と表示します。
特別なケースとして、文字コードが128(8進の0200)から159(8進の0237)の範囲の場合、それは“raw(生)”のバイトを表し、それに対応する表示可能な文字はありません。そのような“文字”はeight-bit-control
文字セットに属し、エスケープされた8進表記で表示されます。このような場合、C-x
=は‘file’のかわりに、‘part of display ...’と表示します。
プレフィクス引数を指定した(C-u C-x =)では、その文字の詳細な情報をウィンドウに表示します:
ascii
文字セットに属すると識別されます。
以下は例です(マニュアルに収まるように折り返している行もあります):
position: 1 of 1 (0%), column: 0 character: ê (displayed as ê) (codepoint 234, #o352, #xea) preferred charset: unicode (Unicode (ISO10646)) code point in charset: 0xEA script: latin syntax: w which means: word category: .:Base, L:Left-to-right (strong), c:Chinese, j:Japanese, l:Latin, v:Viet to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME" buffer code: #xC3 #xAA file code: #xC3 #xAA (encoded by coding system utf-8-unix) display: by this font (glyph code) xft:-unknown-DejaVu Sans Mono-normal-normal- normal-*-15-*-*-*-m-0-iso10646-1 (#xAC) Character code properties: customize what to show name: LATIN SMALL LETTER E WITH CIRCUMFLEX old-name: LATIN SMALL LETTER E CIRCUMFLEX general-category: Ll (Letter, Lowercase) decomposition: (101 770) ('e' '^')