XML文書を記述する文字コードは、UTF-8が多く標準となっているようです。私は、XMLサーバにBXSを使い文字コードはShift_JISもしくはEUC-JPを利用していました。
卒論で、XMLを用いた多種端末対応個人データベース
の研究をした際にiモード端末への対応を考えました。このとき、Shift_JISしか扱えないiモード向けコンテンツの仕様に合わせ文字コードの問題に悩まないようShift_JISに統一してXML文書を記述しました。サーバ側で出力時のエンコード指定をすればXML文書の文字コードは気にする必要はないのですが。
BXSにあるサンプルや、書籍等でみかけるXML文書の多くはUTF-8をエンコード指定しています。UTF-8はXML文書の文字コードとして標準となっているようです。そこで、今後、XML文書を記述する際には文字コードをUTF-8とすることにしました。
普段、VineLinux上でEmacsをテキストエディタに使用しています。Emacsは様々な文字コードに対応しているのですがUTF-8には対応していません。そこで、EmacsをUTF-8に対応させることにします。
Linuxには、他にもUTF-8に対応したテキストエディタがあるようです。(調べてないので詳しくありません。) UTF-8に対応したテキストエディタに乗り換えるのも面倒なので、Emacsを拡張することにします。
EmacsをUTF-8に対応させるためには、Mule-UCSを用います。ダウンロードサイトから最新版 Mule-UCS-0.84.tar.gz をダウンロードします。以降の作業は、rootになる必要はありません。
ソースファイルを伸張します。$ tar xvfz Mule-UCS-0.84.tar.gz生成されたディレクトリに移動し、コマンドを実行します。
$ cd Mule-UCS-0.84以下のような、処理の模様が表示されます。
$ emacs -batch -l mucs-comp.el
Remove old byte-compiled files----- Compiling 1st stage----- While compiling the end of the data in file /home/tsuyoshi/tmp/Mule-UCS-0.84/lisp/mucs.el: ** The following functions are not known to be defined: mucs-setup-conversion, mucs-refresh-conversion Wrote /home/hogehoge/Mule-UCS-0.84/lisp/mucs.elc Wrote /home/hogehoge/Mule-UCS-0.84/lisp/mucs-type.elc ・・・・・
これにより、Mule-UCS-0.84/lisp にun-define.elcが生成されます。 次に、$HOME/.emacs に以下の記述を追加します。
(setq load-path (cons "[un-define.elcのあるディレクトリパス]" load-path))
(if (not (string-match "XEmacs" emacs-version))
(progn
(require 'un-define)
))
[un-define.elcのあるディレクトリパス] には、un-define.elcがあるディレクトリパスを記述します。たとえば、/home/hogehoge/lispにあるなら、
(setq load-path (cons "/home/hogehoge/lisp" load-path)) とします。
C-x RET c utf-8 RETLast Update Thu, 08/21/2003 3:34
C-x C-f [ファイル名] RET