テキストエンリッチド

戻る

テキストエンリッチド(Text Enriched)やリッチテキスト(Rich Text)と呼ばれる形式は、HTML(Hyper Text Markup Language)と同じく、タグを用いて表示を変更していくマークアップ言語である。これらが用いられている場合、ヘッダにおいては、「Content-Type: text/plain」に代えて、「Content-Type: text/enriched」ないし「Content-Type: text/richtext」が用いられる。enrichedとrichtextとの関係は、「<」の表示方法と改行の扱いの違いであり、大きな差異はなく、同じように扱っても問題は少ない。ちなみに、enrichedは Eudoraを開発した Qualcommが作成したもので、RFC上は Informationというカテゴリで登録されている。MSワードなどで用いられる「リッチテキスト」形式は、このいずれとも異なるので、注意。

タグは当然ながら文字修飾に関係するものばかりである。text/enrichedに関して、HTMLタグとの比較を含め、一部を紹介する。

enrichedHTML効果
<BOLD> </BOLD><B> </B>ボールド
<ITALIC> </ITALIC><I> </I>イタリック
<UNDERLINE> </UNDERLINE><U> </U>アンダーライン
<SMALL> </SMALL><FONT SIZE="-1"> </FONT>フォント縮小、重複すると累積的な効果をもたらす
<BIGGER> </BIGGER><FONT SIZE="+1"> </FONT>フォント拡大、重複すると累積的な効果をもたらす
<COLOR> </COLOR><FONT COLOR=""> </FONT>文字色指定。色データは<PARAM>タグで表現される
<PARAM> </PARAM>----直前のタグに関するパラメータ

ここの例以外では、右寄せや左寄せ、インデントなどが存在する。

HTMLに変換する場合に少々てこずるのは色指定のタグであろう。2つのタグを合体させねばならないことに加え、パラメータの指定が異なる。enriched(richtext)では、"FFFF,FFFF,FFFF"のように、RGBそれぞれを2バイト分の16進数で表現するのに対し、HTMLでは、"#FFFFFF"のように、全3バイトを表現しているため、これを変換する必要もある。(実際は、Netscape CommunicatorとInternet Explorerで試したところ、いずれの場合も、"FFFF,FFFF,FFFF"という表現で正しく表示された。そちらでは「」は赤く表示されているだろうか)

平文(text/plain)に変換するのであれば、以下のようなステップになる。

  1. <と>に囲まれたタグ部分を取り除く。
    二つ重なった「<<」は無視し、ペアになっていない場合や、入れ子になっているものも無視する。
  2. 「<<」と二つ重なったものを「<」に戻す。
  3. 単独の改行をスペースに置き返る。
  4. 連続する改行を、1つ減らす。

プログラミング上での注意があるとしたら、タグや特殊記号「<」や「"」を処理する際の順序であろうか。筆者のような迂闊な人間は少ないと思うが、順序を間違えると情けなくなるものだ。

これらのテキスト形式は、実際にはあまり使われていないようだ。それと言うのも、HTMLで記述してしまう方が一般的であるためである。よって、当ページの内容は、多分知らなくても良いものだ。


ProtocolNameRFC
----The text/enriched MIME Content-type1896