プレーンテキスト
プレーンテキスト(英: plain text)とは、コンピュータ上で文章を扱うための一般的なファイルフォーマット、または文字列の形式である。
概要
[編集]厳密にはASCIIのみ、さらに厳密には7ビットASCIIで構成された文書だけを指すが、パソコンが多言語化してさまざまな文字コードが扱われている現在では、特定の文字コードに準拠したバイナリファイルだと定義できる。ワープロで作成した文章とは違い、文字ごとの色や形状、文章に含まれる図などといった情報を含まない。プレーンテキストに対し、文字ごとの色や形状、文章に含まれる図などといった情報を含む文章のことをマルチスタイルテキストと呼ぶ。しかし、マルチスタイルテキストの一部も、ファイルフォーマットとしてはプレーンテキストのみで構成されているものもある。
プレーンテキストには文字情報以外の情報はいっさい含まず、テキストデータのみで構成されている。バイナリデータや文字の整形情報を持たないので、最低限の機能しか持たないテキストエディタや表示用のソフトウェアで扱えるという点で利便性が高い。その反面、格納できる情報が純粋にテキストのみに限定されるため、文字の強調や加工や言語情報、フォント情報を持てない。これらの情報を格納する場合には、HTMLのような工夫が必要になる。
MS-DOS、Windowsでは、EDLINやメモ帳、UNIXやLinuxの場合はviやEmacs、Mac OSの場合はSimpleText、macOSの場合はテキストエディットなどといった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の2つの制御コードを用いて1つの改行を表す。タイプライタで紙を1行分送り出して(改行)からパンチヘッドを行頭に戻す(復帰)のと似たようなものだと考えれば、わかりやすい。
- UNIX
- LF
- Macintosh
- CR(macOSではLFも主流である)
Unicodeでは改行をU+2028で、改段落をU+2029で表している。このほか、Unicodeでは垂直タブおよび改ページも改行として扱う。
文字コード
[編集]アラビア数字やラテン文字(いわゆる英字)以外の印字文字や、改行文字を扱う(したがって、たいていの)場合、文字コードの問題が発生する可能性がある。UNIXやLinuxが拡張UNIXコード(日本語環境ではEUC-JPが多かろう)の文字コードを主に利用するのに対し、MS-DOS・WindowsやMac OSは、Shift JISコードなどを利用する。また、最近ではUnicodeも利用されるようになってきている。そのために、異なるOSを使用しているコンピューター間でファイルを転送させた場合、期待しているテキストが表示されない文字化けと呼ばれる現象が起きてしまう。これらの改行コード、文字コードの違いに対する問題は、変換ソフトや複数の改行コードや文字コードに対応したテキストエディタなどの利用で補える。
外字フォントを利用している場合も、その文字が含まれるフォントがない場合は期待通りの表示を得られない。
暗号技術のplaintext
[編集]暗号化アルゴリズムへの入力を、プレーンテキスト (plaintext) と呼ぶ[1]。こちらは英語では plain と text の間に空白が入らない。