テキストファイル
制御文字は、モニタやプリンタなどの機器を制御するためのデータで、改行を表す改行文字やタブ(水平タブ)などが含まれる。制御文字には、文字と同じようにそれぞれ文字コードが割り当てられる。ASCIIの制御文字では、例えば改行文字 (LF) は0x0A、水平タブ (HT) は0x09である。
テキストファイルの終端に制御文字として、EOF(End Of File、ファイル終端マーク)をつける場合がある。歴史的には、CP/Mオペレーティングシステムに由来する。CP/Mではファイルを、ファイルシステムの(128バイトの)ブロック単位でのみ管理し、1バイト単位のファイルサイズは管理していなかった。ファイルがバイナリ(プログラム)の場合は未使用の領域があるだけで問題ない。しかし、テキストの場合は終端を識別するものが必要となり、ASCIIの置換文字 (SUB) である0x1Aを終端の次の1バイトに付加しファイルの終端を識別することにしていた。MS-DOSでは、CP/Mとの互換性のためテキストファイルにEOFを付加するのが一般的であった。
日本語の漢字・かななどでは、文字コードの文字符号化方式として次の3種類が使われてきた。
そのため、漢字・かななどを含むテキストファイルを異なる環境で使う場合、文字化けなどの問題が発生しやすい。例えば、Linux上で作成した漢字・かなを含むテキストファイルをそのままWindows上で開くと、文字化けすることが多い。こうした問題を解決するには、複数の文字コードに対応するプログラムや、変換ツールが必要になる。
一般的にコンピュータで処理されるすべてのデータは、内部的に数値として扱われる。文字をコンピュータで処理する場合は、各文字と整数値を対応させた何らかの文字セットによる文字コードが使われる。かつては基本的な英数字(半角英数字)であってもコンピュータごとに使用される文字セットが異なり、そのため異なるコンピュータ間のデータ交換に難があったが、標準規格としてASCIIが制定され、またオクテット(1バイト=8ビット)を採用するコンピュータが主流になってからは、異なるコンピュータ間の文字データの交換性が向上した。
ASCIIでは、例えば文字Aは16進数表記で0x41、Bは0x42、......になる。そのため、ASCIIでエンコードされた「ABCD」という文字列を表すファイルを作成すると、内部的には16進数で次のように表される。
しかし、英語以外のヨーロッパ言語で使われるウムラウトやセディーユなどを含むラテン文字や、日本語あるいは中国語のような多数の漢字・かなを使用する言語の文字は、7ビット文字コードのASCIIではサポートされていない。