2015.11.15
INASOFT
/トップ/改行コード変換 ダウンロード/WebHelp/ヘルプトップ
文字コードと改行コードについて
文字コードについて
今も昔も変わらないことに、コンピュータは2進数しか扱うことができません。
2進数は数学的に10進数や16進数など他の表現方法に変換可能なので、人間がコンピュータと接するときは、10進数や16進数などの数値を使うことも多いと言えます。
すなわち、コンピュータは数値を扱うことしかできません。
しかしながら人間は文字を用いてコミュニケーションを行います。人間がコンピュータを介して他の人間とコミュニケーションを取る場合、数値しかやりとりできないのでは、非常にやりづらいです。一昔前のポケベルによる会話を行わないといけないかもしれません。「4649」で「よろしく」みたいな感じの会話です。コンピュータでも文字を扱いたいです。
そこでコンピュータでは、ある数値を特定の文字に結びつけるルールを作成しています。この体系を文字コードと呼びます。
しかし残念なことに文字コードの作成者は一人ではありませんでしたので、たくさんの文字コードが乱立することになってしまいました。
日本語の場合、様々な歴史があり、次のような使われ方をしておりました。
- MS-DOS/Windows … Shift-JIS
- NECの昔のBASIC環境 … JIS
- Windows NT系の内部コード … Unicode (2バイトを1文字とするもの。ここではUTF-16のリトルエンディアンを指す)
- 昔のUnix/Linux等 … EUC-JP/Shift-JIS
- 今のLinux等 … UTF-8
等々。上記は極端な一例です。このとおりになっていない場合もあります。
これらのOS間でテキストファイルをやりとりする場合、あるいはテキストデータの転送を行う場合、文字コード変換が必要となる場合があります。
改行コードについて
文字コードに割り当てられているコードのうち、最初の31個は特殊な意味を持つコントロールコードです。
例えば、タブ(TAB)を意味したり、バックスペース(BS)を意味したり、警告音(BEEP)を鳴らしたり、改行・改ページをしたりします。
ここではそのうち、改行について説明します。
改行コードとして使用されるコードは、0x0d (CR; キャリッジリターン) と 0x0a (LF; ラインフィード) の2種類があり、本来は次のような意味を持ちます。
- CR; キャリッジリターン … 印刷位置を行頭へ戻す (カーソルを現在の行の一番左へ移動)
- LF; ラインフィード … 印刷位置を次の行へ移す (カーソルを現在の桁の一つ下へ移動)
おそらく、タイプライターの動きに準じたものということでしょう。
そのため、一般的な改行(次の行の先頭へ)というのは、上記のCRとLFの組み合わせであるということになります。
※プリンタのヘッドの動きと理解するのでもよいと思いますし、画面出力位置を示す点滅カーソルと理解するのでも良いと思います。
しかしながらパソコンの世界では歴史的に、各OSで次のようなコードを「改行」として扱ってきました。
- MS-DOS/Windows … CR+LF (CRのコードのあとにLFのコードを続けたもの)
- UNIX/Linux … LF
- 旧式のMac OS(ver.9まで) … CR
各OS間でテキストファイルの通信を行う場合は、これらのことを踏まえた改行コード変換を行わなければなりません。
ただ、最近のテキストエディタは優秀なので、どのような改行コードであっても、それを改行として正しく扱えるように作られています。しかし、大半のテキストファイルを扱うソフトウェアにおいては、やはりOSの定義に依存した改行コードの取り扱いを必要とします。そのため、やはり「改行コード変換」が必要になります。
目次へ
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は、右上の作成日付の時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。
■このページに関するご意見をお待ちしております → フィードバックページ