━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆◆◆◆ 改行のお話 ◆◆◆◆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
------------------
改行とは何か
------------------
改行というのは、新しい行に移行するという意味です。
パソコンの場合は「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.