| テキストファイル | |
|---|---|
| ファイル名拡張子 | 。TXT |
| インターネットメディアの種類 | テキスト/プレーン |
| タイプコード | 文章 |
| 統一型識別子(UTI) | 公開プレーンテキスト |
| UTIコンフォメーション | 公開テキスト |
| 魔法の数字 | なし |
| フォーマットの種類 | ドキュメントファイル形式、汎用コンテナ形式 |
テキストファイル(テキストファイルと綴られることもありますが、以前はフラットファイルとも呼ばれていました)は、電子テキストの行の連続として構造化されたコンピュータファイルの一種です。テキストファイルは、コンピュータファイルシステム内にデータとして保存されます。
CP/Mなどのオペレーティングシステムでは、ファイルサイズをバイト単位で管理しないため、テキストファイルの終わりは、ファイルの末尾の行の後に EOF ( end-of-file ) マーカーと呼ばれる 1 つ以上の特殊文字を配置することによって示されます。[ 1 ] DOS、Microsoft Windows、Unix 系システムなどの最新のオペレーティングシステムでは、テキストファイルに特別な EOF 文字は含まれません。これは、これらのオペレーティングシステム上のファイルシステムがファイルサイズをバイト単位で管理しているためです。[ 2 ]
Multics、Unix系システム、CP/M、DOS、旧来のMac OS、Windowsなどの一部のオペレーティングシステムでは、テキストファイルは各行末に行末区切り文字を持つバイト列として保存されます。OpenVMSやOS/360およびその後継システムなどの他のオペレーティングシステムでは、レコード指向ファイルシステムが採用されており、テキストファイルは固定長レコードまたは可変長レコードの列として保存され、レコードヘッダーにレコード長値が設定されます。
「テキスト ファイル」はコンテナーの種類を指し、プレーン テキストはコンテンツの種類を指します。
一般的な説明レベルでは、コンピュータファイルにはテキストファイルとバイナリファイルの2種類があります。[ 3 ]

テキストファイルはそのシンプルさから、情報の保存に広く使用されています。エンディアン、パディングバイト、マシンワード内のバイト数の違いなど、他のファイル形式で発生する問題の一部を回避できます。さらに、テキストファイルでデータ破損が発生した場合でも、多くの場合、回復が容易で、残りのコンテンツの処理を続行できます。テキストファイルの欠点は、通常エントロピーが低いことです。つまり、情報が厳密に必要な量よりも多くのストレージを占有することになります。
単純なテキストファイルでは、読者の解釈を助けるための追加のメタデータ(文字セットに関する情報以外)は不要です。テキストファイルにはデータが全く含まれていないこともあり、これはゼロバイトファイルと呼ばれます。
ASCII文字セットは、英語のテキストファイルで使用される文字セットの中で、最も一般的に互換性のあるサブセットであり、多くの状況でデフォルトのファイル形式とみなされています。アメリカ英語はASCII文字セットでカバーされていますが、イギリスのポンド記号、ユーロ記号、または英語以外で使用される文字については、より豊富な文字セットを使用する必要があります。多くのシステムでは、これは読み取るコンピュータのデフォルトのロケール設定に基づいて選択されます。UTF-8以前は、ヨーロッパ言語では伝統的にシングルバイトエンコーディング( ISO-8859-1からISO-8859-16など)、アジア言語ではワイド文字エンコーディングが使用されていました。
エンコーディングは必然的に文字のレパートリーが限られており、多くの場合非常に小さいため、多くの文字は人間の言語の限られたサブセットのテキストを表すためにしか使用できません。Unicodeはすべての既知の言語を表す共通標準を作成する試みであり、ほとんどの既知の文字セットは非常に大規模な Unicode 文字セットのサブセットです。 Unicode では複数の文字エンコーディングを使用できますが、最も一般的なのはUTF-8です。UTF-8 には、ASCII と下位互換性があるという利点があります。つまり、すべての ASCII テキスト ファイルは、同じ意味を持つ UTF-8 テキスト ファイルでもあります。 UTF-8 には、簡単に自動検出できるという利点もあります。したがって、UTF-8 対応ソフトウェアの一般的な動作モードでは、不明なエンコーディングのファイルを開くときに、まず UTF-8 を試し、明らかに UTF-8 でない場合は、ロケールに依存する従来のエンコーディングにフォールバックします。
ほとんどのオペレーティングシステムでは、 「テキストファイル」という名称は、書式設定がほとんどない(例えば、太字や斜体がない)プレーンテキストのみを扱うファイル形式を指します。このようなファイルは、テキスト端末や簡易テキストエディタで表示・編集できます。テキストファイルは通常、MIMEタイプを持ちtext/plain、通常はエンコードを示す追加情報も付加されます。

DOSとMicrosoft Windowsは共通のテキストファイル形式を採用しており、各行のテキストはキャリッジリターン(CR)とラインフィード(LF)の2文字の組み合わせで区切られます。最終行のテキストはCR-LFマーカーで終了しないことが一般的で、多くのテキストエディタ(メモ帳を含む)では最終行にCR-LFマーカーが自動的に挿入されません。
Microsoft Windows オペレーティングシステムでは、ファイル名の接尾辞(「ファイル名拡張子」)が. である場合、そのファイルはテキストファイルとみなされます。ただし、テキストファイルには、特定の目的に応じて、他にも多くの接尾辞が使用されます。例えば、コンピュータプログラムのソースコードは通常、ソースが記述された プログラミング言語.txtを示すファイル名接尾辞を持つテキストファイルに保存されます。
ほとんどのMicrosoft Windowsテキストファイルは、ANSI、OEM、Unicode、またはUTF-8エンコードを使用しています。Microsoft Windowsの用語で「ANSIエンコード」と呼ばれるものは、通常、シングルバイトのISO/IEC 8859エンコードです(つまり、Microsoftメモ帳のメニューでANSIは実際には「システムコードページ」であり、非Unicodeのレガシーエンコードです)。ただし、中国語、日本語、韓国語など、2バイト文字セットを必要とするロケールでは例外です。ANSIエンコードは、Unicodeへの移行以前は、Microsoft Windowsのデフォルトのシステムロケールとして使用されていました。一方、OEMエンコード(DOSコードページとも呼ばれます)は、 IBMによってオリジナルのIBM PCテキストモード表示システムで使用するために定義されました。通常、DOSアプリケーションで一般的なグラフィック文字や線描画文字が含まれています。「Unicode」エンコードされたMicrosoft Windowsテキストファイルには、UTF-16 Unicode変換形式のテキストが含まれています。このようなファイルは通常、ファイル内容のエンディアンを示すバイトオーダーマーク(BOM)で始まります。 UTF-8はエンディアンの問題を抱えていませんが、多くのMicrosoft Windowsプログラム(例えばメモ帳)は、UTF-8でエンコードされたファイルの内容の先頭にBOMを付加し、[ 4 ] UTF-8エンコードを他の8ビットエンコードと区別します。[ 5 ]
Unix系オペレーティングシステムでは、テキストファイルの形式は次のように正確に記述されています。POSIXでは、テキストファイルは0行以上の行に編成された文字を含むファイルと定義されています。[ 6 ]行は0行以上の改行以外の文字のシーケンスと、終了する改行文字([ 7 ]通常はLF)です。
さらにPOSIXでは、印刷可能ファイルとは、地域規則に従って印刷可能な文字、またはスペースやバックスペースを含むテキストファイルを指します。ただし、ほとんどの制御文字は印刷できません。 [ 8 ]
macOSの登場以前は、従来のMac OSシステムでは、リソースフォークがファイルの種類を「TEXT」と示している場合、ファイルの内容(データフォーク)をテキストファイルとみなしていました。 [ 9 ]従来のMac OSのテキストファイルの行はCR文字で終了します。[ 10 ]
macOSはUnix系システムであるため、テキストファイルにUnix形式を使用します。[ 10 ] macOSのテキストファイルに使用されるUniform Type Identifier(UTI)は「public.plain-text」です。さらに具体的なUTIとしては、UTF-8エンコードテキストの場合は「public.utf8-plain-text」、UTF-16エンコードテキストの場合は「public.utf16-external-plain-text」と「public.utf16-plain-text」、従来のMac OSテキストファイルの場合は「com.apple.traditional-mac-plain-text」があります。[ 9 ]
テキストエディタでファイルを開くと、人間が読める形式のコンテンツがユーザーに表示されます。これは通常、ファイル内のプレーンテキストがユーザーに表示されます。アプリケーションによっては、制御コードはエディタで実行されるリテラルな命令として表示される場合もあれば、プレーンテキストとして編集可能なエスケープ文字として表示される場合もあります。テキストファイルにはプレーンテキストが含まれている場合もありますが、ファイル内の制御文字(特にファイル終了文字)によって、特定の方法ではプレーンテキストが見えなくなる場合があります。
TeX、Markdown、Wikitextなどの軽量マークアップ言語の使用は、プレーンテキストファイルの拡張と見なすことができます。マークアップされたテキストは、機械が解釈可能な注釈が含まれているにもかかわらず、全体的または部分的に人間が読めるからです。HTMLの初期の使用も同様に考えられますが、現代のウェブサイトのHTMLは人間が読むにはほぼ不可能です。エンリッチドテキストやCSVなどの他のファイル形式も、ある程度人間が解釈できると考えられます。
はい、UTF-8 は BOM を含むことができます。ただし、バイトストリームのエンディアンには影響し
ません
。UTF-8 は常に同じバイトオーダーを持ちます。先頭の BOM は、署名としてのみ使用されます。つまり、それ以外はマークされていないテキストファイルが UTF-8 で記述されていることを示すものです。UTF-8 でエンコードされたデータを受け取る側の中には、BOM を期待しない人もいることに注意してください。8 ビット環境で UTF-8 が
透過的に
使用されている場合、BOM の使用は、Unix シェルスクリプトの先頭での「#!」の使用など、先頭に特定の ASCII 文字を期待するプロトコルやファイル形式に干渉します。