━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        ◆◆◆◆ 改行のお話 ◆◆◆◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

------------------
 改行とは何か
------------------

改行というのは、新しい行に移行するという意味です。

パソコンの場合は「Enter」キーを押せば改行して、次の行の先頭にカーソル

が移動します。

ところが、この「Enter」キーを押すという操作の中には、実は深い意味が

こめられているのです。


----------------------------------------
 タイプライターの時代を知っていますか
----------------------------------------

すでに忘れ去られていると思いますが、パソコンやワープロがなかった時代

には書類作成には「タイプライター」が使われていました。

40代や50代の方は、英文タイプライターを使ったことがあるかもしれません。

そういう私もその昔、安い英文タイプライターを持っていました。

高級な英文タイプライターは電動で、キーを打つのにあまり力は要りませんが

私が持っていたものは、手動だったので結構打つのは大変でした。


英文タイプライターにも「スペースキー」というものはあって、

「スペースキー」を押すと、紙が左に1文字分スライドするというようになって

いました。逆に「バックスペースキー」を押すと紙は1文字分右にスライドする

わけです。


つまり、印字する部分は固定されていて、紙の方が動くという機構になって

いたわけです。この紙を移動させることを「フィード」(feed)と呼んで

ました。

行を変えたい場合は、紙を送る部分が回転して、紙が上方向に移動するよう

になっていたのですが、これは手動で行わなくても「Return」キーを押すと

自動で改行が行われ、紙の左端からタイプできるようになっていました。


この改行の動作は、「紙を上方向に送る」という動作と、

「紙を右に送って紙の左端がタイプ位置になるようにする」という

2つの動作の連携で行われていました。


この「紙を上方向に送る」という動作は「ラインフィード」(Line feed)

と呼ばれ、タイプ位置を紙の左端に戻すという動作は「キャリッジリターン」

(Carriage return)と呼ばれていました。


※Carriageというのは、紙を移動させる装置を指した言葉だと思います。


実は、この「Line Feed」と「Carriage return」が元になって今のパソコン

の改行になっているのです。


-----------------------------------------
 初期のパソコンでは「Return」キーだった
-----------------------------------------

パソコンが当初出てきたころには、今の「Enter」キーという言葉はなくて

改行をするためのキーは「Return」キーでした。

Returnというのは、前述の「Carriage return」を意味する言葉です。

私が昔持っていたMacintoshも「Enter」ではなく「Return」と書いてあった

ように思います。

※最新のMacintoshでもまだ「Return」キーとなっているようですが・・・。


-------------------------
 WindowsOSの改行
-------------------------

Windowsパソコンにおいては、Enterキーを押すことで改行コードというもの

が挿入されるようになっています。

この改行コードは一般の文字ではないので、表示上は見ることができません。

一般には、Windowsではこのコードを「CRLF」と表記しています。

このCRLFとは

CR・・・キャリッジリターン(Carriage return)

LF・・・ラインフィード(Line feed)

という2つの意味で、まさに英文タイプライターと全く同じ意味です。



---------------------------------
 マッキントッシュOSの改行
---------------------------------

マッキントッシュは、オペレーティングシステムに途中で大きな変更が

ありました。

OS9までのMacは、Mac独自のOSを使用していましたが、OSX以降はFreeBSD

と呼ばれるUnixのOSをその内部に使用しています。

このため、OSX以降のMacはUnix的パソコンになってしまいました。


この意味からMacの場合は、OS9までとOSXからで改行コードが変化しています。

OS9まで・・・改行コードはCRのみ(キャリッジリターンのみ)

OSXから・・・改行コードはLFのみ(ラインフィードのみ)


------------------
 Unix OSの改行
------------------

Unixは、各種サーバーに使われているOSです。

パソコンレベルではLinuxもUnix系のOSになります。

これらのUnix系のOSでは、改行コードはLF(ラインフィード)が使われて

います。


---------------------
 文字化けの原因
---------------------

ウィンドウズ、マック、ユニックスという3種類のOSがありますが、

その間では言語コードや改行コードが異なっています。

これらの言語コードや改行コードの違いにより、文字化けが起こったり、

改行されるべきところが改行されなかったりの問題が生じます。



--------------------------------
 マイクロソフトワードでの改行
--------------------------------

ワードでの改行の種類には2つあります。

タイプ1:「Enter」キーを押す(段落記号がつく)

タイプ2:「Shift」キーを押しながら「Enter」キーを押す(改行記号がつく)


タイプ1の場合は、改行コードとして「CRLF」というコードが使われます。

タイプ2の場合は、改行コードとして「LF」というコードが使われています。


ちなみに、

検索や置換でこの改行コードを置き換えることができます。

検索する文字列の欄に、

「^p」(ハット+小文字ピー)と書くと、タイプ1の改行コードを検索する

ことができます。

「^l」(ハット+小文字エル)と書くと、タイプ2の改行コードを検索する

ことができます。


-----------------------------------
 マイクロソフトエクセルでの改行
-----------------------------------

エクセルの場合は、Enterキーを押すと、下のセルに移動します。

1つのセルの中で改行したい場合は

「Altキー」+「Enterキー」 で改行することができます。


このタイプの改行コードは「LF」という改行コードが使われています。


この改行コードを検索や置換で認識させる場合は、

検索する文字列の欄にカーソルを置いてから

「コントロールキー」を押しながら「J」のキーを押します。

このとき、検索欄には何も表示されませんが、改行コードが入っているので

注意してください。また、この改行コードを消去する場合は、カーソルを

おいてから、BackspaceとDeleteを何度か押してください。


--------------------------

エクセルの場合には、この改行コードをマクロなどで使用することがあります。

以下がそのコードです。


VBコード    文字コード
─────────────────
CR vbCr Chr(13)

LF vbLf Chr(10)
─────────────────


--------------------------
 ホームページでの改行
--------------------------

HTMLでは、
タグが改行タグですが、自動で改行するタグもたくさん用意

されています。

などのタグは自動で改行します。

は段落タグなので、自動で改行します。

はブロック要素タグなので自動で改行します。


は水平線を挿入するタグですが、これも自動で改行します。

などのタグも自動で改行します。


---------------------------
 CGIやPHPでの改行コード
---------------------------

Webサーバーなどでプログラムを組む場合にも改行コードが必要になります。

CRとLFの考え方は同じですが、コード表記は以下のようになります。

CR・・・・・\r

LF・・・・・\n


-----------------------------------------------
 改行コードと文字コードがWeb構築で一番難しい
-----------------------------------------------

ホームページ上での動的なページを作成するにあたって注意することは、

そのサーバーの言語コード体系がどのようになっているかです。

ホームページを別のレンタルサーバーに移したら、動的なページが動かなく

なったり、文字化けが生じることがよくあります。

ホームページ自体の言語コードの指定や、CGI、PHP上での言語コードの指定

はとても重要です。

今回お話した「改行コード」についても、HTMLと、その後ろで動くCGIやPHP

との間で改行コードが異なるために、そのたびに改行コードを変換すること

が必要になってきます。

そのようなときに、改行コードに関する知識が必要になってくると思います。


2008/10/26 第196号 反・資格宣言 copyright(c)NokoTech Lab. All Right Reserved.