次: , 前: Syntax for Strings, 上: String Type


2.3.8.2 文字列内の非ASCII文字

ASCIIである国際化文字を文字列に含めるには、 その文字をそのまま書きます。 Emacsの文字列(および、バッファ)では、 非ASCIIの表現方法が2つあります。 ユニバイトとマルチバイトです。 マルチバイトバッファやマルチバイト文字列、あるいは、 マルチバイトとして訪問しているファイルなどの マルチバイトのソースから文字列定数を読み取るときには、 文字をマルチバイト文字として読み取り、 マルチバイト文字列にします。 ユニバイトのソースから文字列定数を読み取るときには、 文字をユニバイト文字として読み取り、 文字列はユニバイトになります。

マルチバイトの非ASCII文字は、 必要な桁数の16進エスケープ`\xnnnnnnn'を用いて 書くこともできます。 (マルチバイトの非ASCII文字のコードは、256より大きい。) 16進数字として正しくない文字で16進エスケープを終端します。 16進数字の文字があとに続く場合には、`'(バックスラッシュと空白)と 書いて16進エスケープを終端します。 たとえば、`\x8e0\ 'は、グレーブアクセント付きの`a'を表します。 文字列定数内の`'は、バックスラッシュ+改行と同じです。 文字列内の文字には含まれませんが、先行する16進エスケープを終えます。

マルチバイトの16進エスケープを使うと、 文字列はマルチバイトになります。 ユニバイトの非ASCIIを文字コードで表現することもできますが、 文字コードは128(8進0200)から255(8進0377)の範囲である必要があります。 こうすると、文字列はユニバイトになります。

2種類のテキストの表現方法について詳しくは、See Text Representations