Web サーバへのファイル転送と文字コード変換

マルチメディア・リテラシーA∼No.10
Web サーバへのファイル転送と文字コード変換
1.Web サーバへのファイル転送
PC 側で作成した画像ファイルなどは、必要に応じて Web サーバに転送してやる必要がある。Web 上でこ
れらを公開するためには、Web サーバ上の各自ホームディレクトリの下に作成したディレクトリ「www」以
下のディレクトリ に、公開対象とする全てのファイルを転送しなければならない。ファイル転送には、FTP
(File Transfer Protocol)を用いる。
FTP での接続元のコンピュータ (PC)を、
「ローカルホスト(ローカル側)
」と呼ぶ。一方、接続先 のコ
ンピュータ(Web サーバなど)を、「リモートホスト(リモート側)
」と呼ぶ。ftp を行う場合にも、telnet
のときと同様にリモートホストにログインする必要がある。つまり、ftp を行うには、リモート側に ID が登
録されている必要がある1。本学の場合、ログインには、telnet と同じ User-ID とパスワード を用いる。
ローカル側からリモート側にファイルを転送することを「アップロード 」するという。逆に、リモート側
からローカル側に転送することを「ダウンロード」するという。
FTP を行うには複数の方法があるが、1 つは Windows に実装された ftp コマンドを使用する方法である 。
これは、Windows の「コマンドプロンプト」から実行するもので、CUI インターフェースを用いる。ftp コ
マ ン ド に よ る 転送 は、今 後、実 験などでも使用 する場 合が あ る(特 に国際産業情報学科の 学生) し、
UNIX-UNIX 間でもほぼ同様の方法でのファイル転送処理が行えるので、しっかり習得してもらいたい。も
う一つの方法は、Windows 上の GUI アプリケーションを使う方法である。本学では FFFTP というソフト
が使用可能である。FFFTP は Windows には標準では添付されていない。ただし、フリーソフトウェア なの
でインターネットなどからダウンロードして、自宅 PC 等にセットアップして利用できる。
ftp コマンドの使用方法、FFFTP の使用方法については、補足資料を参照のこと。
また、次の URL も参考になる(内容が少し古いので接続先サーバ名等に注意)
。
・ftp コマンド :http://www.cs.reitaku-u.ac.jp/infosci/netwk/ftp.html
・FFFTP:http://www.cs.reitaku-u.ac.jp/infosci/netwk/ffftp/index.html
2.ファイル転送時の注意点
ftp を行う際の注意点は、転送すべきファイルがバイナリファイルであるのか、テキストファイルであるの
かに注意することである。バイナリファイルはバイナリ(binary)モードで、テキストファイルはアスキー
(ascii)モードで転送する必要がある。転送モードを間違えるとファイルが正しく転送できない。
また、テキストファイルを転送する場合には、別の注意点がある。次章で述べるように、PC と UNIX で
は、テキストファイルの改行文字が異なるため、テキストファイルの転送時には ascii モード を選択しなけれ
ばならない。また、ファイルに使用されている漢字コードにも注意する必要がる。PC 側で使用している漢字
コードはシフト JIS であるが、本学の Web サーバでは EUC を使用しているため、漢字コードの変換も必要
である 。転送するファイルの形式を認識して、正しい設定で転送を行うように、常に意識するようにしよう。
コマンドプロンプトの ftp を使う場合には、UNIX 上で手動による漢字コード変換を行う必要がある 。こ
の方法については 4 章で述べる。
一方、FFFTP には、転送するファイルがテキストファイルであるか否かを識別して、適切なモードを自動
的に選択してくれる機能がある。しかしこの機能は万能ではない。この機能は、単にファイルの拡張子 によ
1
ID が登録されていなくても使える ftp サービスがある。これを anonymous ftp という。anonymous(アノニマス)は
匿名という意味で、この機能を使ってインターネット上で公開されたファイルを入手できる。anonymous ftp サーバに
ログインするためには、「ID:anonymous、Password:自分の電子メールアドレス」を入力する慣習になっている。
1
マルチメディア・リテラシーA∼No.10
って、テキストファイルを識別するもので、事前にテキストファイル に使用される拡張子を登録しておく必
要がある。通常の設定でテキストファイルとして認識されるのは、拡張子が「.txt」
「.html」
「.htm」
「.cgi」
「.pl」となっているファイルのみであり、それ以外のファイルはバイナリモードで転送される。例えば、
「.c」
のような拡張子を持つファイルを ascii モードで転送するためには、明示的 に ascii モードでの転送を選択し
なければならない。
3.テキストファイルの形式
テキストファイルとは、文字コードのみから構成されるファイルのことである 。これ以外の種類のファイ
ルは、バイナリファイルと呼ばれて区別される。Word を用いて、文字のみからなる Word ファイル を作成し
ても、それはテキストファイルではない。Word ファイルは、ページや文字の書式情報を含む Word 独自の形
式のバイナリファイルである。Windows 上でテキストファイルを作成する場合は、メモ帳や EmEditor など
のアプリケーションが利用できる。UNIX 上であれば vi を使用する。Web ページの基本となる HTML ファ
イルも、テキストファイルである。テキストファイルは、一定のコード体系に基づいたデータのみからなっ
ており 、アプリケーションに依存した情報を含んでいないので、コードの変換を行うことができれば、異な
る機種間でのやり取りが可能である。例えば、UNIX を OS とする本学の Web サーバと、Windows を OS
とする PC とでは 、テキストファイルの形式に関して以下の違いがある。
表1 テキストファイルに関する差異
異なる点
全角文字コード
改行文字
Web サーバ
EUC
LF(0A)
PC
シフト JIS
LF+CR(0A0D)
Web サーバと PC 間でのファイルの転送には FTP を使用するが、
基本的には漢字コード変換は行われない。
ツールによっては上記の差異に関して適切な変換処理を行うものもある。ここでは、PC 側で FTP ツールを
起動して、PC から本学の Web サーバ にテキストファイルを転送する場合を考える。まず、改行文字につい
ては、テキストファイルを転送するモード(ascii モード)を選択すると、自動的に行末の CR(0D)を省い
てくれる。次に、全角文字コード(漢字コード)については、EUC コードに変換するようツールの設定を行
う。本学で使用している FTP ツール(FFFTP)は、以上のような機能を提供する。先に述べたように、テ
キストファイル以外の形式のファイル(バイナリファイル )は、バイナリモードで転送する。これを ascii
モードで転送すると、余計な処理が行われてファイルが破損するので注意が必要である。
ascii モード+
EUC 変換で転送
バイナリモード
で転送
ascii モード+
無変換で転送
2
マルチメディア・リテラシーA∼No.10
4.UNIX 上での漢字コード変換
以上のように、テキストファイルを転送した場合には文字コードの変換を行う必要がある。UNIX 上でこ
れを行うために nkf コマンドがある。nkf は汎用的に使用できるネットワーク用漢字コード変換フィルタで
ある。電子メールのヘッダ(Subject:など)に使用された 全角文字や、バイナリ形式の添付ファイルを、電
子メールで送信できるテキストに変換する場合に用いられる MIME と呼ばれる変換方式にも対応している。
ここでは、シフト JIS と EUC の相互変換についてのみ解説する。
nkf の書式:nkf [options] [file]
[file]には変換したいファイルのファイル名を記述する。
[options]欄に指定できるオプションは以下のとおり。
-j
JIS コードを出力する(デフォルト、オプションを付けない場合)
-e
EUC コードを出力する
-s
シフト JIS コードを出力する
変換結果は、標準出力(つまりディスプレー)に出力される。入力ファイルの形式は自動的に判断される
ので、一般的には出力時のコード体系をオプションで指定すればよい。
これをリダイレクト(>)と組み合わせることで 、コード変換された出力結果を、別ファイルに出力するこ
とができる。リダイレクトについては、本授業では「% date > file1」という 形で練習した(date コマンドの
結果を file1 に書き出す)
。
例1
ファイル index.txt を EUC に変換し index.html に書き出す
% nkf –e index.txt > index.html
例2
ファイル file.euc をシフト JIS に変換し file.txt に書き出す
% nkf -s file.euc > file.txt
3