プレーンテキスト
プレーンテキスト (plain text) とは、コンピュータ上で文章を扱うための一般的なファイルフォーマット、または文字列の形式である。厳密にはASCIIのみ、さらに厳密には7ビットASCIIで構成された文書だけを指すが、パソコンが多言語化し様々な文字コードが扱われている現在では、特定の文字コードに準拠したバイナリファイルだと定義できる。ワープロで作成した文章とは違い、文字ごとの色や形状、文章に含まれる図などといった情報を含まない。プレーンテキストに対して、文字ごとの色や形状、文章に含まれる図などといった情報を含む文章のことをマルチスタイルテキストと呼ぶ。しかし、マルチスタイルテキストの一部もファイルフォーマットとしてはプレーンテキストのみで構成されているものもある。
プレーンテキストには文字情報以外の情報は一切含まず、テキストデータのみで構成されている。バイナリデータや文字の整形情報を持たないので、最低限の機能しか持たないテキストエディタや表示用のソフトウェアで扱えると言う点で利便性が高い。その反面、格納できる情報が純粋にテキストのみに限定される為、文字の強調や加工や言語情報、フォント情報を持つことが出来ない。これらの情報を格納する場合は、HTMLのような工夫が必要になる。
MS-DOS、Windowsでは、EDLINやメモ帳、UNIXやLinuxの場合はviやEmacs、Mac OSの場合はSimpleText、Mac OS Xの場合はテキストエディットなどといったOSに標準的に付属するソフトウェアで編集することが出来る。
なお、テキストエディタを使うことで、プログラミング言語のソースコードやHTML、XML、TeXといった純粋なテキストのみで構成されているファイルを編集する事も可能である。
制御コード・制御情報
先ほど、プレーンテキストはテキストデータのみで構成されると述べたが、正確には画面に表示される通常の文字のほかに、文字としては表示されないが文字表示の制御等を行なう制御コードが含まれる。制御コードの例としては、文字の開始位置を揃える水平タブ (0x09)、垂直タブ (0x0B)、改行、改ページ (0x0C)、EOF(End Of File、ファイル終端マーク:0x1A)及びBOM(Byte Order Mark:Unicodeのように2バイト以上で1文字を構成する文字コードにおいてエンディアンを判別するための複数バイトからなる情報)等がある。このほか、各種文字コードの制御情報も含まれる。
これら制御コードに関して、OS間での互換性の問題が生じる。MS-DOS・Windows、UNIX及びMac OSのプレーンテキストでは、それぞれ異なる改行コードを用いており、これが問題となることがありうる。参考までに各OSの改行コードを挙げる。 (CR及びLFはそれぞれASCIIの制御コードであり、CRは「復帰」を、LFは「改行」を表す。)
- MS-DOS, Windows
- CRとLFの二つの制御コードを用いて1つの改行を表す。タイプライタで、紙を1行分送り出して(改行)からパンチヘッドを行頭に戻す(復帰)のと似たようなものだと考えればわかりやすい。
- UNIX
- LF
- Macintosh
- CR(Mac OS XではLFも主流である)
また、Unicodeでは改行をU+2028で、改段落をU+2029で表している。このほか、Unicodeでは垂直タブ及び改ページも改行として扱う。
文字コード
アラビア数字やラテン文字(いわゆる英字)以外の印字文字や、改行文字を扱う(したがって、たいていの)場合、文字コードの問題が発生する可能性がある。UNIXやLinuxが拡張UNIXコード(日本語環境ではEUC-JPが多かろう)の文字コードを主に利用するのに対し、MS-DOS/WindowsやMac OSは、Shift_JISコードなどを利用する。また、最近ではUnicodeも利用されるようになってきている。そのために、異なるOSを使用しているコンピューター間でファイルを転送させた場合、期待しているテキストが表示されない文字化けと呼ばれる現象が起きてしまう。これらの改行コード、文字コードの違いに対する問題は、変換ソフトや複数の改行コードや文字コードに対応したテキストエディタなどの利用で補える。
外字フォントを利用している場合も、その文字が含まれるフォントがない場合は期待通りの表示を得られない。