コンピュータは文字をすべて文字コードという数値で処理しますが、改行を表すのに用いられるコードが改行コードです。改行コードはOSによって次のように異なります。
OS | コード表記 | 16進表記 | 10進表記 |
---|---|---|---|
UNIX | <LF> | 0A | 10 |
Windows | <CR><LF> | 0D 0A | 13 10 |
Macintosh | <CR> | 0D | 13 |
HTMLファイルであれば、どの改行コードであってもブラウザが適切に処理してくれるのですが、CGIスクリプトはOSに適した改行コードでないと、エラーになってしまいます。例えば、Windowsで作成したCGIスクリプトをUNIXのサーバーに転送する際は、改行コードを <CR><LF> から <LF> に変換してやらなくてはなりません。
FTPソフトでサーバーにCGIスクリプトを転送する際に、転送モードを [テキストモード] や、[ASCIIモード] に設定しておくと、転送時に、自動的に適切な改行コードに変換してくれます。
ただし、古いバージョンの Fetch など、日本語に対応していないFTPソフトの場合は、[テキストモード] にすると日本語が化けてしまったりします。Fetch の場合は [Transrate ISO Charactors]というチェックをオンにすることで回避できますが、回避できない場合は、次の方法で転送してください。
最近のテキストエディタには、保存時に漢字コードや改行コードを直接指定できるものがあります。FTPソフトに変換してもらう方法がうまくいかない場合は、あらかじめテキストエディタで改行コードを相手のOSにあわせて保存し、その後、FTPソフトの[バイナリモード(Rawモード)]で転送するようにしてください。