The Unicode HOWTO: アプリケーション固有の情報

次のページ 前のページ 目次へ

## 5. アプリケーション固有の情報

## 5.1 ネットワーク

### rlogin

は上記で述べたパッチでうまく動作します。

### telnet

デフォルトでは telnet は 8 ビットクリーンではありません。Unicode のキーストロークをリモートのホストへ送るためには、telnet を "outbinary" モードにセットする必要があります。そのためには次の 2 つの方法があります。

> `

>     $ telnet -L <host>

> `

もしくは

> `

>     $ telnet
>     telnet> set outbinary
>     telnet> open <host>

> `

さらに上記で述べたパッチも使用してください。

## 5.2 ブラウザ

### Netscape

Netscape 4.05 以降では UTF-8 でエンコードされた HTML 文書を表示すること ができます。そのためには全ての文書で <head> と </head> タグの間にこのよ うな行が必要です。

> `

>     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

> `

Netscape 4.05 以降では、バイトオーダーのマークが付いた UCS-2 エンコーディング の HTML やテキストファイルも表示できます。

http://www.netscape.com/computing/download/

### lynx

lynx2.8 にはオプション設定用の画面('O' キーを押下)があり、ここで表示する 文字セットを設定することができます。UTF-8 モードの xterm や Linux コンソールで実行している時には、これを "UNICODE UTF-8" にセットします。

ここでもう一度。全ての文書には <head> と </head> タグの間に次のような行が必要です。

> `

>     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

> `

UTF-8 でエンコードされたテキストファイルを見るときには、コマンドラインオ プション "-assume_local_charset=UTF-8"(file:/... の URL だけに影響を及ぼします)、 もしくは "-assume_charset=UTF-8"(全ての URL に影響を及ぼします)も必要と なります。lynx-2.8.2 ではオプション設定画面('O' キーを押下)で "仮定する 文字セット/assumed document character set" を "utf-8" に変更することもで きます。

(訳注： 設定画面のオプション名(日本語・英語共に)は、Kondara MNU/Linux 1.0 に同梱されている lynx 2.8.2-3k1 で確認しました）

オプション設定画面には "使用したい文書のキャラクターセット/preferred document character set" オプションもありますが、少なくとも apache-1.3.0 における file:/... URL と http://... URL では何の効果もありません。

文字のスペーシングおよびラインブレークには問題があります(x-utf8.html のロシア語のセクションや utf-8-demo.txt を見てみてください)。

さらに lynx-2.8.2 では --enable-prettysrc で設定されている場合、表示 文字セットが "UNICODE UTF-8" にセットされているとカラー表示が正常に動作 しません。これは簡単なパッチ lynx282.diff で修正することができます。

Lynx 開発者曰く、「UTF-8 でのスクリーン表示をするために普段 lynx を利用す る場合であっても、slang ライブラリと -DSLANG_MBCS_HACK オプションでコン パイルすることを依然としてお勧めします」です。

ftp://ftp.gnu.org/pub/gnu/lynx/lynx-2.8.2.tar.gz http://lynx.browser.org/ http://www.slcc.edu/lynx/ ftp://lynx.isc.org/

### テスト用ページ

ブラウザのためのテストページが、Alan Wood のサイト http://www.hclrss.demon.co.uk/unicode/#links および James Kass のサイト http://home.att.net/~jameskass/ にあります。

## 5.3 エディタ

### yudit

Gáspár Sinai の yudit http://czyborra.com/yudit/は、X Window System 用のすばらしい unicode テキストエディターです。多くの言語 やインプットメソッド、ローカルの文字セットへのコンバートをサポートしてお り、キーボード設定マップを使用することにより、英語キーボードだけで全ての 言語でのテキストの入力を行なうことが可能になります。

次の 3 種類のバージョンをコンパイルすることができます： Xlib GUI, KDE GUI, Motif GUI

カスタマイズは非常に簡単です。一般的なカスタマイズは、まずフォント からでしょう。フォントメニューから "Unicode" を選び、コマンド "xlsfonts ' *-*-iso10646-1'" ではまだフォントサイズが適当ではないため、(Markus Kuhn の 13 ピクセル固定フォントにマッチさせるため)フォントサイズ 13 を選択し ました。

次にインプットメソッドのカスタマイズを行ないます。インプットメソッドは "Straight", "Unicode", "SGML" がベストの選択でしょう。他のビルトイン・イ ンプットメソッドの詳細は /usr/local/share/yudit/data/ を御覧ください。

次に実行した時にも変更を有効にするためには、$HOME/.yuditrc ファイルを編集してください。

このエディターの基本的な機能は編集、カット & ペースト、 検索および置換だけです。アンドゥはありません。

### mined98

mined98 は Michiel Huisjes, Achim Müller, Thomas Wolff が作った小さ なテキストエディターです。 http://www.inf.fu-berlin.de/~wolff/mined.html これは UTF-8 ある いは 8 ビット の xterm で、UTF-8 や 8 ビットでエンコードされたファイルの 編集をすることができます。また Unicode 文字の入力のための強力な機能があ ります。

UTF-8 モードの xterm や Linux コンソールで実行している時には、環境変数 `utf8_term` をセットするか、もしくは mined をコマンドライン引数 `-U` で起動する必要があります。

mined では 8 ビットや UTF-8 でエンコードされたファイルを編集することがで きます。デフォルトでは発見的自動検出(autodetection heuristic)を行ないま すが、これを使用したくない時は、UTF-8 ファイルを編集する時にはコマンドラ イン引数 `-u` を、8 ビットエンコーディングされたファイルを編集す る時には `+u` を付けて起動します。設定はいつでもエディター内で変 更することができます。エンコーディングはメニュー行に("L:h" は 8 ビットで、 "U:h" は UTF-8)表示されています。変更するにはこの文字の始めをクリックし てください。

注意点：

- ディストリビューションに含まれているバイナリファイルは古く、UTF-8 をサポー トしていません。ソースからバイナリをリビルドする必要があります。それから src/mined を /usr/local/bin/mined として、doc/mined.help を /usr/local/man/cat1/mined.1 としてインストールします。そうすれば `ESC h` コマンドでマニュアルを見付けることができます。
- mined は "stty erase" 設定を無視します。バックスペースキーが ASCII コー ド 127 を send し、また "stty erase ^?" を設定している場合には(これらは 正しい設定です)、mined を `-B` 引数で起動する必要があります。これ により、バックスペースキーがカーソルの左の文字を消すようになります。
- "Home", "End", "Delete" キーは動作しません。

### vim

vim(version 5.4m 以降)はマルチバイトロケールをサポートしますが、X library がこのサポート機能を持っている必要があります。また 1 文字を表現する のに最大でも 2 バイトのエンコーディング(ISO-2022 エンコーディングなど)の みであり、UTF-8 はサポートしません。

### emacs

まず始めに Emacs マニュアルの "International Character Set Support" セク ション("International" ノード)を読んでください。特に Emacs を起動するに はコマンド

> `

>      $ emacs -fn fontset-standard

> `

を実行する必要があることに注意してください。これにより、多くの国の文字の フォントセットを使うことができます。

Otfried Cheong の emacs-utf パッケージ http://www.cs.ust.hk/faculty/otfried/Mule/ により "unicode-utf-8" エンコーディングを、宮下 尚の Mule-UCS package ftp://etlport.etl.go.jp/pub/mule/Mule-UCS/Mule-UCS-0.70.tar.gz ( http://riksun.riken.go.jp/archives/misc/mule/Mule-UCS/Mule-UCS-0.70.tar.gz にミラーされています)により "utf-8" エンコーディングを Emacs で扱えるよ うになります。両方のパッケージを同時に利用することもできます。emacs-utf "unicode-utf8" エンコーディングの利点はロードが速く、数学記号やアクセン ト付きの文字などの非 CJK 文字を表示にするのにより良いフォントを選んでく れることです。Mule-UCS "utf-8" エンコーディングの利点は、ファイルの読み書きだ けではなく(M-x で起動する) process buffer でもそのエンコードを利用できる ことです。

emacs-utf パッケージをインストールするには "utf2mule" プログラムをコンパ イルしてunicode.el, muleuni-1.el, unicode-char.el と一緒に $PATH のどこ かにインストールし、次の設定を $HOME/.emacs ファイルに追加します。

> `

>     (setq load-path (cons "/home/user/somewhere/emacs" load-path))
>     (if (not (string-match "XEmacs" emacs-version))
>       (progn
>         (require 'unicode)
>         (if (eq window-system 'x)
>           (progn
>             (setq fontset12
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-12-*-*-*-*-*-fontset-standard"))
>             (setq fontset13
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-fontset-standard"))
>             (setq fontset14
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-standard"))
>             (setq fontset15
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-15-*-*-*-*-*-fontset-standard"))
>             (setq fontset16
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard"))
>             (setq fontset18
>               (create-fontset-from-fontset-spec
>                 "-misc-fixed-medium-r-normal-*-18-*-*-*-*-*-fontset-standard"))
>            ; (set-default-font fontset15)
>             ))))

> `

フォントセットを有効にするには Mule メニューの "Set Font/FontSet" を選択 するか、Shift を押しながらマウスの左ボタンをクリックします。Markus Kuhn の 9x15 および 6x13 フォントでは、高さ 15 と 13 のフォントセットが Unicode には最適です。フォントセットを初期のフォントセットとして指定する には、上記のコードの `set-default-font` 行をアンコメントします(コ メント(;)を取ります)。

Mule-UCS パッケージをインストールするには

> `

>     $ emacs -batch -l mucs-comp.el

> `

を実行し、作成された `un-define.elc` を適当な所にインストールして、 次の行を $HOME/.emacs ファイルに追加します。

> `

>     (setq load-path (cons "/home/user/somewhere/emacs" load-path))
>     (if (not (string-match "XEmacs" emacs-version))
>       (progn
>         (require 'un-define)
>         ))

> `

UTF-8 でエンコードされたファイルをオープンするには、

> `

>     M-x universal-coding-system-argument unicode-utf8 RET
>     M-x find-file filename RET

> `

あるいは

> `

>     C-x RET c unicode-utf8 RET
>     C-x C-f filename RET

> `

を実行します。 (Mule-UCS が好みであれば、unicode-utf8 のかわりに utf-8 を実行します)

shell バッファを UTF-8 I/O で実行するには、下記を実行します。

> `

>     M-x universal-coding-system-argument utf-8 RET
>     M-x shell RET

> `

(Mule-UCS のみで動作します)

上記は Emacs がターミナルモードではなく、ウィンドウモードの時のみ 動作します。

Richard Stallman は将来的に UTF-8 サポートを Emacs に統合しようと計画し ています。同じく XEmacs 開発グループもです。

関連文書： <golconda@yahoo.co.jp> のページ "Multilingual Emacs and Unicode" http://www.geocities.com/ResearchTriangle/Campus/6475/index.html

### xemacs

(このセクションは Gilbert Baumann が書きました)

これは Xemacs(のバージョン 20.4 に MULE を設定(configured)した) で UTF-8 エンコードを扱えるようにする方法です。残念ながらソースにパッチをあてる 必要があります。

始めに Tomohiko Morioka による、これらのファイルが必要になります。

http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-21.0-b55-emc-b55-ucs.diff および http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/xemacs-ucs-conv-0.1.tar.gz

diff ファイルは C のソースの差分です。tar 玉は elisp のコードで、 Unicode との相互変換のための多くのコードテーブルを提供します。diff ファ イルの名前からわかるようにこれは XEmacs-21 用ですから、私が使っている XEmacs-20.4 では多少パッチを修正する必要がありました。XEmacs-20.4 のソー スとの最も大きな違いは file-coding.[ch] が mule-coding.[ch] となっていた ことです。(訳注：tarball(tar 玉や tar ボールと呼ばれます)は、tar で固め られたファイルのことです)

(私のように) XEmacs-MULE に慣れていない方へのクイックガイドです：

MULE ではエンコーディングを `coding-system' と呼びます。 最も重要なコマンドは、

> `

>     M-x set-file-coding-system
>     M-x set-buffer-process-coding-system   [comint buffers]

> `

と、使用されているエンコーディングを調べる時に `find-file' 関数が使用す る変数 `file-coding-system-alist' です。実行後にすぐに私が行なったのは これ です。

このコードはオープンしようとしているファイルの先頭 600 バイトまで、-*- で始まっている special mode line を探します。"Encoding: xyz;" フィールド があり、xyz エンコーディング(Emacs では "coding system" ですね)が存在し てた場合には、このようにして XEmacs を utf-8 モードにすることができます。

> `

>     ;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: CLEX; Encoding: utf-8; -*-

> `

全てがうまく動作したあと、\u03BB(ギリシャ語のラムダ) というマクロを定義しました。

> `

>     (defmacro \u03BB (x) `(lambda .,x))

> `

### nedit

(工事中)

### xedit

理論上は xedit はロケールを適切に設定し(上記を参照)、$HOME/.Xdefaults ファ イルに "Xedit*international: true" 行を追加すれば UTF-8 ファイルを編集で きるはずですが、実際には UTF-8 エンコーディングされた非 ASCII 文字を認識 してはいますが、連続した "@" 文字で表示されてしまいます。

### axe

ロケールを適切に設定し(上記を参照)、$HOME/.Xdefaults ファイルに "Axe*international: true" 行を追加すれば、理論上 axe は UTF-8 ファイルを 編集できるはずですが、実際には単に core を吐くだけです。

### pico

(工事中)

## 5.4 メーラ

MIME: RFC 2279 は UTF-8 を MIME 文字セットとして定義しています。 MIME は 8 ビットの表示可能な base64 エンコーディングで転送することができ ます。古い MIME UTF-7 プロポーザル(RFC 2152)は反対されている(deprecated) ため、使用するべきではありません。

1999 年 1 月 1 日以降にリリースされたメールクライアントは UTF-8 エンコー ドされたメールの送信や表示を行えるはずです。もし扱えない場合には欠陥 (deficient)と思われます。ですがこれらのメールは MIME ラベルである以下の 行を含む必要があります。

> `

>     Content-Type: text/plain; charset=UTF-8
>     Content-Transfer-Encoding: 8bit

> `

MIME ラベルなしで、UTF-8 ファイルを単純に "mail" コマンドにパイプで渡し た場合には、正しく扱われません。

メールクライアントの実装者は http://www.imc.org/imc-intl/ や http://www.imc.org/mail-i18n.html に目を通すべきです。

これから個々のメールクライアント(もしくは "mail user agents"(MUA)と 呼びます) について見ていきます。

### pine

パッチのあたっていない pine version 4.10 のはこのようになっています。

Pine は文字セットのコンバートを行いませんが、UTF-8 のテキストウィンドウ (Linux コンソールか xterm)で UTF-8 のメールを閲覧することができます。

通常 Pine は UTF-8 エンコードされたメールを閲覧するたびに、文字セットが 異なっていると警告をします。この警告を出さないようにするには S(setup)を 選択し、次に C(config)、そして "character-set" の値を UTF-8 に変更します。 Pine は UTF-8 を識別しないため、このオプションは警告表示を抑制する以外に は何も行ないません。

Pine の Unicode 文字の認識は非常に限定されていることにも注意してください。 ラテン語やギリシャ語の文字は表示しますが、他の種類の Unicode 文字は表示 しません。

Robert Brady のパッチ <rwb197@ecs.soton.ac.uk> http://www.ents.susu.soton.ac.uk/~robert/pine-utf8-0.1.diff は Pine に UTF-8 サポートを追加します。このパッチによりヘッダや本文のデ コード、表示が正常に行われます。このパッチは GNOME の libunicode http://cvs.gnome.org/lxr/source/libunicode/ に依存しています。

しかし多くの場合、アラインメントの問題は解消されていません。メールの リプライは文字セットのコンバートを正しく行えず、また pico エディターは マルチバイト文字を扱えません。

### kmail

(KDE 1.0 の時点では)kmail は UTF-8 メールをまったくサポートしていません。

### Netscape Communicator

Netscape Communicator の Messenger は、UTF-8 エンコードされたメールの 送信や表示を行うことができますが、多少の手作業が必要となります。

UTF-8 エンコードされたメールを送信するためには、メールを作成する前に "Compose" ウィンドウを開き、メニューの "View -> Character Set -> Unicode (UTF-8)" を選択します。その後メールの作成、送信を行います。

UTF-8 でエンコードされたメールを受け取った場合、Netscape は残念ながら 正 しく UTF-8 で表示しません。メールが UTF-8 でエンコーディングされていると 表示することすらできません。手動でメニューの "View -> Character Set -> Unicode (UTF-8)" を選択する必要があります。

Netscape は UTF-8 のメールを表示するために別のフォントを使用します。フォ ントの設定は "Edit -> Preferences -> Fonts" ダイアログで調整できますから、 "Unicode" フォントカテゴリーを選択します。

### emacs (rmail, vm)

(工事中)

### mutt

mutt-1.0 http://www.mutt.org/ の UTF-8 サポートは原始的なものだけです。UTF-8 を完全にサポートするため の Edmund Grimley Evans のパッチがあります。 http://www.rano.demon.co.uk/mutt.html

## 5.5 テキスト操作

### groff

伝統的な Unix テキスト操作システム troff/nroff の GNU 版である groff は UTF-8 でフォーマットされたテキストを出力できます。このためには最新のスナッ プショット ( http://groff.ffii.org/ の `groff-current.tar.gz`) で、 ``groff -Tlatin1`' や ``groff -Tascii`' の代わりに ``groff -Tutf8`' を実行する必要があります。

### TeX

teTeX 0.9 以降には Omega と呼ばれる、TeX に Unicode への対応を追加したも のがあります。( http://www.gutenberg.eu.org/omega/, ftp://ftp.ens.fr/pub/tex/yannis/omega) さらに utf8-tex-0.1.tar.gz の unicode.tex ファイルを使うと、TeX のソー スとして UTF-8 でエンコードされたものを扱うことができます。現在、 数多くの Unicode 文字がサポートされています。

これらの変更点はソースの先頭に次の行を追加し、(`tex'のかわりに) `omega' や (`latex' のかわりに)`lambda' を実行することにより利用することできます。

> `

>     \ocp\TexUTF=inutf8
>     \InputTranslation currentfile \TexUTF

> `

> `

>     \input unicode

> `

関連するリンク： http://www.dante.de/projekte/nts/NTS-FAQ.html, ftp://ftp.dante.de/pub/tex/language/chinese/CJK/.

## 5.6 データーベース

### PostgreSQL

PostgreSQL 6.4 以降ではオプション `--with-mb=UNICODE` を指定してバイナリを作成することができます。

## 5.7 その他のテキストモードのアプリケーション

### less

これ http://www.flash.net/~marknu/less/less-346.tar.gz に Robert Brady <rwb197@ecs.soton.ac.uk> のパッチ less-346-utf8.diff をあててインストールします。 そして次に環境変数 LESSCHARSET をセットします。

> `

>     $ export LESSCHARSET=utf-8

> `

環境変数 LESSKEY をセットしている場合には、その変数が指している lesskey ファイルで LESSCHART を定義していないことを確認してください。必要に応じ て `lesskey' コマンドでファイルの再生成や、LESSKEY 環境変数の unset を行ってください。

### expand, wc

GNU textutils-2.0 を入手し、パッチ textutils-2.0.diff をあてて "#define HAVE_MBRTOWC 1", "#define HAVE_FGETWC 1", "#define HAVE_FPUTWC 1" を config.h に追加し、src/Makefile の CFLAGS と LDFLAGS が libutf8 がインストールされているディレクトリを include するようにして リビルドしてください。

### col, colcrt, colrm, column, rev, ul

util-linux-2.9y パッケージを入手して configure し、defines.h の ENABLE_WIDECHAR を定義し(訳注：#define ENABLE_WIDECHAR)、lib/widechar.h の "#if 0" を "#if 1" にします。そして text-utils/Makefile の CFLAGS と LDFLAGS が libutf8 がインストールされているディレクトリを include するよ うにしてリビルドしてください。

### figlet

figlet 2.2 には UTF-8 で入力するオプション "figlet -C utf8" があります。

### kermit

シリアル通信用プログラム C-Kermit http://www.columbia.edu/kermit/ のバージョン 7.0beta10 以降では、ファイルおよび通信のエンコーディングとし て UTF-8 と UCS-2 を、ターミナルでのエンコーディングとして UTF-8 を使用 することができます。エンコーディングに関するドキュメントは ftp://kermit.columbia.edu/kermit/test/text/ckermit2.txt にあります。

## 5.8 その他の X11 アプリケーション

X11 Xlib の UTF-8 ロケールは現在開発中です。

次のページ 前のページ 目次へ