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

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)表示されています。変更するにはこの文字の始めをクリックし てください。

注意点:

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 ロケールは現在開発中です。


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