テキストファイルと文字コード

UB3/informatics/basics/text_files

このページの最終更新日: 2023/06/26

  1. 概要: テキストファイルとは
    • テキストファイルとバイナリファイル
    • テキストファイルを編集するソフト
  2. 文字コードとは
    • Mac で文字コードを調べる方法

広告

概要: テキストファイルとは

テキストファイル text file とは 文字コードによって表されるデータのみを含むファイル のことである。データには、文字および制御文字が含まれる。

制御文字には、例えば改行 line feed を指定する改行コードなどがある。これについては 改行コード (一括置換など) のページで述べている。


Text file とバイナリファイル

テキストファイル以外のファイルは、全て バイナリファイル binary file である。つまり文字コードのルールに従わない情報が収められているファイルで、画像、音楽、システムファイルなど多くがこれにあたる。

たとえば Microsoft Word のファイルはテキストファイルのように思えるが、実はフォント、文字の大きさ、文字の色などの書式情報が収められており、この部分は文字コードのルールに従っていない。そのため Word file はバイナリファイルに分類される。

Linux での Latex 環境の構築 で、Word file の書式情報が蓄積してゴミになることを述べているので、興味のある人は参考にしてほしい。

テキストエディタ: テキストファイルを編集するソフト

テキストファイルは上記のようにシンプルなファイルなので、もちろん多くのアプリケーションで編集できる。これらを総称して テキストエディタ という。非常にたくさんあるが、私が使っているものをいくつか挙げておく。

html エディタ のページも参照のこと。

Brackets

Adobe がサポートを停止するまで、メインのエディタとして使っていた。

テキストエディット

Mac OS X のテキストエディタ。デフォルトでは、リッチテキスト .rtf で保存するようになってしまっているために使いにくい。環境設定から format を rich text から plain text に変更すれば、.txt で新規ファイルを保存できるようになる。

Atom

Linux で Latex 環境を構築するのに使ったことがあった。Latex はさすがに古臭いと考え、これは 2020 年ごろにストップ。

その後、Mac のテキストエディタとして使っていたが、ファイル保存の際にエラー (保存できない) が出るようになり、全体に重い感じもするので、2022 年初頭に使わなくなった。

TextWrangler
/BBEdit

複数ファイルの一括編集、php ファイルの編集に使っていた。BBEdit になったあとも、一括編集ではしばらく使っていた。

テキストエディタとして使うには、少し余分な機能がついていて重い感じがする。

文字コードとは

テキストファイルを理解するために、まずは文字コードについてまとめる。コンピューターは二進数で情報を処理していることは有名であるが、この画面のように日本語やアルファベットを表示することができる。つまり、二進数と文字には対応関係がある。文字コード とは、文字に割り当てられた数字のこと、または文字と数字を対応づけるルールのことをいう (2)。

文字と数字を対応づけるルールを「エンコーディング」といって使い分ける場合もあり、定義は少々混乱しているようである (2)。

下の図は、ASCII というやや古い文字コードを表したものである (1)。ただし、これもわかりやすくアルファベットなどを使った対応表であり、本来は全て二進数で 010001111000000101010 のように表されている。

ASCII 文字コード

代表的な文字コード (エンコーディング) は以下の通り。


ASCII

英数字を表す文字コードで、「アスキー」と読むようだ。American Standard Code for Information Interchange の略で、1960 年代に開発された最も基本的な文字コード (4)。

非常に互換性が高い。アルファベットで文字化けがほとんど起こらないのは、文字コードが ASCII で統一されているためである。

全部で 94 文字が定められており、うち 83 文字は各国で共通。12 文字は各国で自由に決めて良いことになっている (5)。たとえば、日本とアメリカではバックスラッシュと円記号などが違いであり、ドイツではウムラウトなどが当てはめられている。

このような国別の違いを考慮した規格にも名前があり、アメリカのものは US-ASCII、日本のものは JIS X 0201 Roman という (5)。

EUC-JP

Shift-JIS

UTF-8

UTF-8 および UTF-16 は、Unicode という方式で世界中の文字を扱えるようにした文字コードである (4)。UTF-8 は 8 bit で ASCII と互換性があるのに対し、UTF-16 は 16 bit で非互換である。

UTF-16


Mac で文字コードを調べる方法

最初は ブログ に書いていたが、2019 年 3 月にアップデートしてこのページにまとめた。いくつか方法がある。

> ターミナル の file コマンドを使う方法。

  • file --mime filename.txt で表示される。

> ターミナルの nkf コマンド を使う方法 (3)。

  • このコマンドは、文字コードを変更する場合にも使える。デフォルトではインストールされていないようなので、まず Homebrew をインストールしてから brew install nkf でインストール。
  • 文字コードのチェックは -g オプションで nkf -g filename である。
  • 文字コードを UTF-8 に変換する場合は nkf -w --overwrite filename で、overwrite をつけないと元ファイルが残る設定になる。Shift-Jis への変換は、-w を -s にする。

広告

References

  1. By Namazu-tron - See above description, Public Domain, Link: Last access 6/1/2017.
  2. いいから聞け! 俺が文字コードについて教えてやるよ その1 (前提知識編) Link: Last access 6/1/2017.
  3. macでファイルの文字コードを変換する『nkfコマンド』の使い方とオプション一覧. Link: Last access 2019/03/22.
  4. 新人さんに知ってほしい「文字コードのお話」. Link: Last access 2019/03/22.
  5. エンコードの種類. Link: Last access 2019/03/22.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。