メインコンテンツへスキップ

ファイル形式

TXTとは?プレーンテキストと文字コードとUTF-8

TXTは文字と改行だけでできた、最もシンプルな文書形式です。ところが文字コード、BOM、改行コードのせいで、最もトラブルの多い形式の一つでもあります。それぞれを解説します。

著者: Hemen Dönüştür Editör Ekibi公開日: 10 分で読めます

TXTと書かれたファイルバッジ

TXTは、コンピューターが扱う最も素朴な文書形式です。太字もフォントもページレイアウトもなく、あるのは文字と改行だけ。そのシンプルさのおかげで、どこにでも持ち運べます。50年前に書かれたテキストファイルを今日開くことができ、今日書いたものも数十年後に開ける可能性が非常に高いのです。しかし「プレーンテキスト」は見た目ほど単純ではありません。アクセント付きの文字が「é」や「?」になる、すべての行が1行につながる、ファイルの先頭に見えない文字がある。どれも、TXTファイルの中に隠れたある一つの情報、つまり文字コードが原因です。この記事では、TXTファイルの仕組みと、こうしたトラブルの直し方を説明します。

TXTファイルとは

拡張子が.txtのファイルには、テキストの文字しか入っていません。ヘッダーもメタデータも書式もなく、すべてのバイトがテキストそのものです。肝心なのは、どのバイトがどの文字を表すのかという点です。この対応関係を文字コード(文字エンコーディング)と呼びますが、TXTファイルは通常、自分がどの文字コードを使っているかを書いていません。開くプログラムが推測するしかないのです。

簡単な歴史:ASCIIからUTF-8へ

ASCIIは1963年にASA X3.4-1963として初めて公開されました。7ビットを使い、英語のアルファベット、数字、句読点、改行などの制御文字からなる128文字を定義しています。é、ñ、öのような文字や、日本語の仮名や漢字はASCIIに含まれていません。

その穴を埋めるために生まれたのがコードページです。8ビットのバイトの残り128個の値を言語ごとに割り当てるもので、西欧言語にはWindows-1252やISO-8859-1、トルコ語にはWindows-1254やISO-8859-9が使われ、ほかにも多数あります。日本語には、複数のバイトで1文字を表すShift_JISなどの文字コードが使われてきました。問題は、同じバイトがコードページによって別の文字を意味することです。たとえばバイトFDは、Windows-1252では「ý」ですがWindows-1254では「ı」です。コードページの推測を誤ったプログラムは、テキストを正しく表示できません。

この問題を根本的に解決したのがUnicodeで、あらゆる文字体系のすべての文字に一つの番号を割り当てます。その番号をバイトに変換する方法として最も広く使われているのがUTF-8です。ロブ・パイクによれば、UTF-8は1992年9月ごろのある晩、ケン・トンプソンがニュージャージー州のダイナーでランチョンマットの上に設計したものです。現在の定義は2003年11月のRFC 3629で、UTF-8はU+0000からU+10FFFFまでのすべての文字を1から4バイトで表し、ASCIIの文字はASCIIと同じ1バイトで書きます。

UTF-8の普及ぶりはWebを見れば分かります。W3Techsの2026年10月15日のデータによれば、文字コードが判明しているWebサイトの99.1%がUTF-8を使っており、ISO-8859-1が0.8%、Windows-1252が0.2%で続きます。

TXTファイルの中身

文字とバイト

「café」という単語をUTF-8とWindows-1252で保存すると、バイト列が変わります。

テキスト:        c   a   f   é
UTF-8:          63  61  66  C3 A9   (5バイト)
Windows-1252:   63  61  66  E9      (4バイト)

UTF-8のファイルをWindows-1252として読むプログラムは、C3とA9を別々の2文字「é」として表示します。逆に、Windows-1252のファイルをUTF-8として読むプログラムはE9を不正なバイトとみなし、代わりに「�」を表示します。文字化けのほぼすべてが、このどちらかのパターンです。

BOM(バイトオーダーマーク)

一部のプログラムは、UTF-8ファイルの先頭にEF BB BFというバイトを書き込みます。これは文字U+FEFFのUTF-8表現で、「このファイルはUTF-8です」という目印として使われます。RFC 3629は、この目印が常にこの3バイトで現れることに触れています。UnicodeのFAQによれば、UTF-8でBOMは必須ではなく目印の役割しかなく、ファイルの先頭にASCII文字が来ることを前提とするプロトコルでは避けるべきだとされています。実際には、BOMは一部の古いWindowsプログラムやExcelがUTF-8を認識するのに役立つ一方で、Unixのシェルスクリプトや、特定のソフトウェアが読む設定ファイルを壊すことがあります。

UTF-16ではBOMの重要性がさらに増します。バイト順を示すからで、FF FEはリトルエンディアン、FE FFはビッグエンディアンのUTF-16を意味します。

改行コード

行の終わりを示す文字も、OSによって異なります。

システム改行コードバイト
WindowsCRLF0D 0A
Linux、macOSLF0A
旧Mac OS(OS Xより前)CR0D

長年、Windowsのメモ帳はCRLFしか理解できなかったため、Linuxで書いたファイルは1本の長い行として表示されていました。Microsoftは2018年5月8日にメモ帳のLFとCRへの対応を発表し、この変更はWindows 10バージョン1809でユーザーに届きました。

TXTが使われる場面

  • メモや下書き:書式のいらない手早いメモ。
  • ソフトウェア:READMEファイル、ライセンス文、ソースコード、設定ファイル、ログ。
  • データのやり取り:システム間で受け渡す単純なリストやエクスポート。
  • 長期保存:特定のアプリケーションに依存せずに保管すべきテキスト。
  • アクセシビリティと処理:スクリーンリーダー、検索エンジン、テキスト分析ツールにとって最もクリーンな入力。

長所と短所

長所:どの端末やOSでも開けます。ファイルはとても小さく、プログラムのバージョンに依存せず、壊れるリスクもごくわずかです。Gitのようなバージョン管理システムで変更を行単位で確認できます。マクロや埋め込みオブジェクトを持てないため安全です。

短所:書式、画像、表、リンクを持てません。文字コードがファイルに記録されないため、推測を誤ることがあります。改行コードの違いが、システム間で小さいながらも煩わしい問題を起こします。見出しやリストのような構造が必要なら、Markdownのほうが適しています。

TXTを開けるソフト

Windowsのメモ帳、macOSのテキストエディット、LinuxのgeditなどのエディターはどれもTXTを開けますし、ブラウザーでもテキストファイルを直接表示できます。Visual Studio Code、Notepad++、Sublime Textのような高機能エディターは、ステータスバーに文字コードと改行コードの種類を表示し、クリック一つで両方を変更できるため、文字コードのトラブルを調べるには最も便利な道具です。

よくあるトラブルと対処法

アクセント付きの文字が「é」や「ü」のように表示される

ファイルはUTF-8で保存されているのに、読み込むプログラムがWindows-1252だと思い込んでいます。文字コードを選べるエディターで、UTF-8として開き直してください。CSVやテキストファイルがExcelでこう表示される場合は、BOM付きUTF-8で保存すれば、たいてい直ります。

文字が「?」や「�」に置き換わる

ファイルは古いコードページで保存されているのに、UTF-8として読まれています。エディターで正しいコードページを選んで開き、UTF-8で保存し直してください。テキストが文字どおりの「?」として保存されてしまっている場合、元の文字は失われているので、元データに戻る必要があります。

すべてのテキストが1行に表示される

古いエディターがLFの改行コードを理解できていません。最新のメモ帳か高機能エディターを使うか、改行コードをCRLFに変換してください。

ファイルの先頭に見えない文字がある

たいていはBOMです。スクリプトや設定ファイルが1行目でエラーになる場合は、「BOMなしのUTF-8」で保存してください。

TXTファイルを変換するときのコツ

当サイトの変換ツールでは、TXTファイルは当サイトのサーバーにアップロードされ、30分以内に削除されます。文字コードは自動で判別されます。まずBOM(UTF-8、UTF-16のリトルエンディアンとビッグエンディアン)を確認し、BOMがなければ有効なUTF-8かどうかを確認します。有効なUTF-8でない場合は、トルコ語の旧Windowsコードページ(Windows-1254)として読み込みます。そのため、Shift_JISなどで保存した日本語のファイルは、先にUTF-8で保存し直してから変換してください。NULバイトを多く含むファイルはテキストではなくバイナリとみなされ、「テキストファイルではありません」というメッセージが表示されます。

  • TXTからWordへの変換とTXTからPDFへの変換では、各行が段落になり、空行も保たれます。行頭のインデント(コード、詩、番号付きの条項など)は失われないよう改行しないスペースに変換され、行頭のタブは4つのスペースになります。
  • TXTからMarkdownへの変換は、プレーンテキストにあとから見出しやリストを加えたいときのよい出発点です。
  • 逆方向では、PDFからTXTへの変換とWordからTXTへの変換で書式が取り除かれ、見出しと段落が空行で区切られます。当サイトで作成するTXTファイルは、メモ帳やExcelなどのプログラムで文字が正しく表示されるよう、BOM付きUTF-8で保存されます。

よくある質問

TXTファイルはどの文字コードで保存すべきですか?

新しいファイルならUTF-8です。あらゆる言語に対応し、Webではほぼ標準になっています。BOMなしのUTF-8を前提とするソフトウェアで読むならBOMを付けず、Excelなどのプログラムで開くならBOMを付けましょう。

UTF-8とBOM付きUTF-8の違いは何ですか?

内容は同じで、BOM付きのほうは先頭にEF BB BFというバイトがあるだけです。この目印は一部のプログラムで文字コードの判別に役立ちますが、別のプログラムでは先頭の見えない文字として現れることがあります。

TXTとRTFの違いは何ですか?

TXTには文字しか入っていません。RTFは、テキストに埋め込んだ制御命令によって、太字、斜体、フォント、表などの書式を持ちます。書式が不要なら、TXTのほうがシンプルで持ち運びやすい形式です。

TXTファイルの文字コードを調べるには?

Visual Studio CodeやNotepad++などのエディターは、ステータスバーに文字コードを表示します。現在のメモ帳も、ステータスバーに文字コードと改行コードの種類を表示します。

TXTファイルにウイルスが入っていることはありますか?

プレーンテキストファイルは、それ自体に実行可能なコードを含みません。「document.txt.exe」のような二重拡張子には注意してください。Windowsでファイルの拡張子を表示する設定にしておくと、この手口に気づきやすくなります。

出典

関連する変換ツール

すべての記事