国際的な文字セットやスクリプトの利用者は、ファイルを保存するためのほぼ標準的な符号化方式を確立してきた。これらの符号化方式は通常マルチバイトであり、2バイト以上のシーケンスを用いて個々の非ASCII文字を表現する。
Emacsは内部的に、Unicode標準のスーパーセットである独自のマルチバイト文字エンコーディングを使用しています。この内部エンコーディングにより、既知のほぼすべての文字体系の文字を、単一のバッファや文字列内で混在させることができます。Emacsは、ファイルの読み書きやサブプロセスとのデータ交換を行う際、このマルチバイト文字エンコーディングとその他のさまざまな符号化方式との間で変換を行います。
コマンド C-h h (view-hello-file) はファイル etc/HELLO
を表示します。このファイルでは、多くの言語で「hello」と言う方法を示すことで、さまざまなスクリプトを紹介しています。端末で表示できない文字がある場合、それらは
"?" または白抜きのボックスとして表示されます(表示不能文字を参照してください)。
キーボードには、こうした文字セットが使用されている国であっても、通常はすべての文字に対応するキーが備わっているわけではありません。キーボードがサポートしていない文字は、C-x 8 RET (insert-char) を使用して挿入できます。テキストの挿入を参照してください。一部の一般的な文字には短縮表記が用意されています。例えば、左シングルクォートマーク
‘ は C-x 8 [
と入力することで挿入でき、Electric Quote モードでは通常、単に `
と入力するだけで挿入できます。引用符を参照してください。また、Emacs はさまざまな 入力メソッド(通常は各スクリプトや言語ごとに1つ)をサポートしており、これによりそのスクリプトの文字をより簡単に入力できます。入力メソッドを参照してください。
プレフィックスキー C-x RET は、マルチバイト文字、符号化方式、および入力メソッドに関するコマンドに使用されます。
コマンド C-x = (what-cursor-position) は、ポイントにある文字に関する情報を表示します。カーソル位置情報
で説明した文字位置に加え、このコマンドでは文字がどのようにエンコードされているかも表示されます。例えば、文字 ‘c’ の場合、エコーエリアに以下の行が表示されます:
Char: c (99, #o143, #x63) point=28062 of 36168 (78%) column=53
‘Char:’ に続く4つの値は、point の後に続く文字を、まず文字自体を表示し、次にその文字コードを10進数、8進数、16進数で示すことで記述します。非ASCIIマルチバイト文字の場合、これらに続いて ‘file’ と、バッファの符号化方式でその文字を安全に、かつ単一バイトで符号化できる場合の、当該符号化方式による16進数での文字表現が表示されます(符号化方式を参照)。文字の符号化が1バイトを超える場合、Emacs は ‘file ...’ を表示します。
On rare occasions, Emacs encounters raw bytes: single
bytes whose values are in the range 128 (0200 octal) through 255 (0377
octal), which Emacs cannot interpret as part of a known encoding of some
non-ASCII character. Such raw bytes are treated as if they belonged to a
special character set eight-bit; Emacs displays
them as escaped octal codes (this can be customized; see Customization of Display). In this case,
C-x = shows ‘raw-byte’ instead of ‘file’. In addition, C-x =
shows the character codes of raw bytes as if they were in the range #x3FFF80..#x3FFFFF, which is where Emacs maps them to
distinguish them from Unicode characters in the range #x0080..#x00FF.
接頭辞引数 (C-u C-x =) を指定すると、このコマンドはさらに describe-char コマンドを呼び出し、文字の詳細な説明を表示します:
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 ea" or
"C-x 8 RET LATIN SMALL LETTER E WITH CIRCUMFLEX"
buffer code: #xC3 #xAA
file code: #xC3 #xAA (encoded by coding system utf-8-unix)
display: by this font (glyph code)
xft:-PfEd-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' '^')