基礎知識
割合に説明することが多い事柄を、簡単にここにまとめます。
量が増えてきたら、マーカーでもつけてみます。
あと、ここで取り上げて欲しい内容などありましたらご連絡下さい。時間を見て、解説していきたいと思いますんで。
改行コード
CGIで、特にMacとWinとUnix(Linux)でファイルをやり取りするときに、以外と引っかかってくる内容です。
改行コードを一言でいうと「一行の終わりを示す、普段は見えない文字」です。これが全てのOSで共通であると非常にありがたいのですが、残念ながらバランバランです。
現在、大抵の環境で、改行コードを操作できる方法が確立されているかと思います。WinとMacは、テキストエディッタがそれを行ってくれます。UNIX系の人は、Perlあたりでがりがりと処理しましょう(ちなみに、LFが'\n'、CRが'\r'で表現されます、大抵)。
サーバにデータをあげるときとか、或いはサーバからデータを取ってくるときに、この辺が以外とネックになったりします(特にPerlのCGIとか)。ですので、このあたりはちゃんと意識するようにしておきましょう。
for Windows
Windowsは、CR-LFと呼ばれ、二つの改行コードがペアになっています。
UNIXの改行コードもMacの改行コードも、どっちも改行としては認識しません(それぞれ、CRないしLFが足りない)。ので、シンプルなエディタであるメモ帳などで閲覧すると、一行のやたら長い文面になります。ちなみに改行が入るべきところには、黒い四角(昔は豆腐とか呼んでましたねぇ)が存在します。
for Macintosh
MacはCRのみが改行コードとして使われています。LFは「よくわからない何か」です。
Winで作られた文書は、ちゃんと読めます。例えばシンプルテキストとかでも。ただ、CR(Macにおける改行コード)の後ろにLFがくっついてくるため、二行目いこう、変な文字が行の先頭にくっついてきます。
UNIXで作成された文書は、一行のやたら長い文字列として認識されます。
for any UNIX
UNIXはMacの逆で、LFのみが改行コードとして使われています。
Winの文書は、各行末に、「^M」という変な文字がくっついてくるかと思います、例えばviとか使ってると。これは、LF(UNIXにおける改行コード)の前にあるCRがそのように表示されています。
これがMacの文書になると、^Mのみで改行されない、やたら長い一本の文字列になります。UNIXで「一行づつ処理をする」コードを書いている諸氏は要注意です。
戻る
Copyright 2002 M-Fr Net All Right Reserved
E-Mail:info@m-fr.net