文字コードと改行コードって何だろう。


文字コードと改行コードってどんなのがあるの?

メモ帳の保存オプションを見てみたらこんなのがあった。
「文字コード」「改行コード」
言葉としてはみたことあるが仕組みというかどういうものなのか理解できていないので、
自分なりに調べてまとめてみることにした。

手元にあるエディタごとに文字コード用保存オプションはこんなのがあった。

エディタ オプション オプション選択肢
メモ帳 文字コード ANSI/Unicode/Unicode big endian等
サクラエディタ 文字コードセット SJIS/JIS/EUC-JP/Latin 1/Unicode等
EmEditor エンコード システム規定(932, shift-jis)等
TeraPad 文字コード SHIFT-JIS/JIS/EUC/Unicode/UTF-8等

手元にあるエディタごとに改行コード用保存オプションはこんなのがあった。

エディタ オプション オプション選択肢
メモ帳 なし なし
サクラエディタ 改行コード CR+LF/LF(Unix)/CR(Mac)
EmEditor 改行方法 CR+LF(Windows)/CRのみ(Macintosh)/LFのみ(Unix)
TeraPad 改行コード CR+LF/CR/LF

では本題。

1. 文字コードについて

1.1 文字(Character)って何?

テキストデータのやりとりに利用される文字集合の最小単位。
文字は大きく分けて以下の要素で構成されている。

名称 正式名称 その他の呼称 図形文字/制御文字名称
図形文字 Graphic Character Printable Characters(印字可能文字) 記号、数字、文字(ローマ字、カナ文字)
制御文字 Control Character Non-Printing Character(印字不可能文字) 空白、水平タブ、改行、復帰、エスケープ、抹消

1.2 文字集合(Character Set)って何?

文字の集合体。「あ、い、う、え、お」も文字集合。
なお、コンピュータ間の通信で使う上ではこの文字集合を符号化し、
符号化文字集合として利用する。

1.3 符号化文字集合(CCS=Coded Character Set)って何?

文字集合内の文字一つ一つにビットを割り当てて符号化した文字集合。
ちなみに符号化文字集合の対象となる文字集合をレパートリという。
例えばNull=0x0000、Backspace=0x0008、Escape=0x001bといった具合に符号化を行う。

1.4 文字符号化方式(CES=Character Encoding Scheme)って何?

符号化文字集合をそのまま使用するのであれば問題ない(?)が、
それぞれで収録している文字が異なるため、様々な文字を表現するためには
文字集合を組み合わせたり、変換したり、部分的に利用したりする必要がある。
その際に用いる方式が文字符号化方式。

1.5 結局文字コードって何?

元々は文字集合に符号化表現を割り当てたものを文字コードと呼んでいたが、
現在は符号化文字集合と文字符号化方式と区別して考えるようになった模様。

1.6 代表的な文字コード

名称     正式名称 読み方
ASCIIコード American Standard Code for Information Interchange Code アスキーコード
EBCDIC Extended Binary Coded Decimal Interchange Code エビシディック
JISコード Japanese Industrial Standards Code ジスコード
Shift-JISコード Shift-Japanese Industrial Standards Code シフトジスコード
EUC Extended UNIX Code イーユーシー
UNICODE UNICODE ユニコード

2. 改行コードについて

代表的な改行コード

名称 正式名称 読み方
CR Carriage Return キャリッジリターン
LF Line Feed ラインフィード
CR+LF Carriage Return+Line Feed キャリッジリターンラインフィード

自分のメモ用なので徐々に詳細追加していこうと思います。