3
OS 基礎演習~No.11 1 Web サーバへのファイル転送と文字コード変換 1.Web サーバへのファイル転送 PC 側で作成した画像ファイルなどは、必要に応じて Web サーバに転送する必要が ある。Web 上でこれらを公開するためには、Web サーバ上の各自ホームディレクトリ の下に作成したディレクトリ「www」以下のディレクトリに、公開対象とする全ての ファイルを転送しなければならない。ファイル転送には、 FTP File Transfer Protocolを用いる FTP において、接続元のコンピュータ(PC)を、「ローカルホスト(ロー カル側)」と呼ぶ。一方、接続先のコンピュータ(Web サーバなど)を、「リモートホスト(リモート側)」 と呼ぶ。 ftp を行う場合にも、 telnet のときと同様にリモートホストにログインする必要がある。つまり、 ftp を行うには、リモート側に ID が登録されている必要がある 1 。本学の場合、ログインには、telnet と同じ User-ID とパスワードを用いる。ローカル側からリモート側にファイルを転送することを「アップロード」 するという。逆に、リモート側からローカル側に転送することを「ダウンロード」するという。 FTP を行うには複数の方法がある。一つは Windows に実装された ftp コマンドを使用する方法である。 これは、Windows の「コマンドプロンプト」から実行するもので CUI インターフェースを用いる。ftp コマ ンドによる転送は、今後、実験などでも使用する場合がある(特に国際産業情報学科の学生)し、 UNIX-UNIX 間でもほぼ同様の方法でのファイル転送処理が行えるので、しっかり習得してもらいたい。もう一つの方法 は、 Windows 上の GUI アプリケーションを使う方法である。本学では、 FFFTP というソフトが使用可能で ある。FFFTP Windows には標準では添付されていない。ただし、フリーソフトウェアなのでインターネ ットなどからダウンロードして、自宅 PC 等にインストール(導入)して利用できる。 ftp コマンドの使用方法、FFFTP の使用方法については、補足資料を参照のこと。 2.テキストファイルとその形式-ファイル転送前の予備知識 テキストファイルとは、文字コードのみから構成されるファイルのことである。これ以外の種類のファイ ルは、バイナリファイルと呼ばれて区別される。例えば、 Word を用いて文字のみからなる Word ファイルを 作成しても、それはテキストファイルではない。Word ファイルは、ページや文字の書式情報を含む Word 独自の形式のバイナリファイルである。画像ファイルも、もちろんバイナリファイルである。 Windows 上でテキストファイルを作成する場合は、メモ帳や EmEditor などのアプリケーションが利用で きる。UNIX 上であれば vi を使用する。Web ページの基本となる HTML ファイルも、テキストファイルで ある。テキストファイルは、一定のコード体系に基づいたデータのみからなっており、アプリケーションに 依存した情報を含んでいないので、文字コードの変換を正しく行うことができれば、異なる機種間でのやり 取りが可能である。例えば、UNIXSolaris)を OS とする本学の Web サーバと、Windows OS とする PC とでは、テキストファイルの形式に関して以下の違いがある(表 1)。 表1 テキストファイルに関する差異 異なる点 Web サーバ PC 全角文字コード EUC シフト JIS 2 改行コード LF0ALF+CR0A0D1 ID が登録されていなくても使える ftp サービスがある。これを anonymous ftp という。anonymous (アノニマス)は 匿名という意味で、この機能を使ってインターネット上で公開されたファイルを入手できる。anonymous ftp サーバに ログインするためには、「IDanonymousPassword:自分の電子メールアドレス」を入力する慣習になっている。 2 ただし、Windows XP では、内部的には「Unicode(ユニコード)」という文字コード体系が使われている。これにより 多言語に対応できる。

OS No.11 Webサーバへのファイル転送と文字コード変換...OS基礎演習~No.11 2 3.ファイル転送時の注意点 ftpを行う際にはいくつかの注意点がある。最初の注意点は、転送すべきファイルがバイナリファイルであ

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OS No.11 Webサーバへのファイル転送と文字コード変換...OS基礎演習~No.11 2 3.ファイル転送時の注意点 ftpを行う際にはいくつかの注意点がある。最初の注意点は、転送すべきファイルがバイナリファイルであ

OS 基礎演習~No.11

1

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

1.Web サーバへのファイル転送

PC 側で作成した画像ファイルなどは、必要に応じて Web サーバに転送する必要が

ある。Web 上でこれらを公開するためには、Web サーバ上の各自ホームディレクトリ

の下に作成したディレクトリ「www」以下のディレクトリに、公開対象とする全ての

ファイルを転送しなければならない。ファイル転送には、FTP(File Transfer Protocol)を用いる。FTP において、接続元のコンピュータ(PC)を、「ローカルホスト(ロー

カル側)」と呼ぶ。一方、接続先のコンピュータ(Web サーバなど)を、「リモートホスト(リモート側)」

と呼ぶ。ftp を行う場合にも、telnet のときと同様にリモートホストにログインする必要がある。つまり、ftpを行うには、リモート側に ID が登録されている必要がある1。本学の場合、ログインには、telnet と同じ

User-ID とパスワードを用いる。ローカル側からリモート側にファイルを転送することを「アップロード」

するという。逆に、リモート側からローカル側に転送することを「ダウンロード」するという。 FTP を行うには複数の方法がある。一つは Windows に実装された ftp コマンドを使用する方法である。

これは、Windows の「コマンドプロンプト」から実行するもので CUI インターフェースを用いる。ftp コマ

ンドによる転送は、今後、実験などでも使用する場合がある(特に国際産業情報学科の学生)し、UNIX-UNIX間でもほぼ同様の方法でのファイル転送処理が行えるので、しっかり習得してもらいたい。もう一つの方法

は、Windows 上の GUI アプリケーションを使う方法である。本学では、FFFTP というソフトが使用可能で

ある。FFFTP は Windows には標準では添付されていない。ただし、フリーソフトウェアなのでインターネ

ットなどからダウンロードして、自宅 PC 等にインストール(導入)して利用できる。 ftp コマンドの使用方法、FFFTP の使用方法については、補足資料を参照のこと。

2.テキストファイルとその形式-ファイル転送前の予備知識

テキストファイルとは、文字コードのみから構成されるファイルのことである。これ以外の種類のファイ

ルは、バイナリファイルと呼ばれて区別される。例えば、Word を用いて文字のみからなる Word ファイルを

作成しても、それはテキストファイルではない。Word ファイルは、ページや文字の書式情報を含む Word独自の形式のバイナリファイルである。画像ファイルも、もちろんバイナリファイルである。

Windows 上でテキストファイルを作成する場合は、メモ帳や EmEditor などのアプリケーションが利用で

きる。UNIX 上であれば vi を使用する。Web ページの基本となる HTML ファイルも、テキストファイルで

ある。テキストファイルは、一定のコード体系に基づいたデータのみからなっており、アプリケーションに

依存した情報を含んでいないので、文字コードの変換を正しく行うことができれば、異なる機種間でのやり

取りが可能である。例えば、UNIX(Solaris)を OS とする本学の Web サーバと、Windows を OS とする

PC とでは、テキストファイルの形式に関して以下の違いがある(表 1)。 表1 テキストファイルに関する差異

異なる点 Web サーバ PC 全角文字コード EUC シフト JIS2

改行コード LF(0A) LF+CR(0A0D) 1 ID が登録されていなくても使える ftp サービスがある。これを anonymous ftp という。anonymous(アノニマス)は

匿名という意味で、この機能を使ってインターネット上で公開されたファイルを入手できる。anonymous ftp サーバに

ログインするためには、「ID:anonymous、Password:自分の電子メールアドレス」を入力する慣習になっている。 2 ただし、Windows XP では、内部的には「Unicode(ユニコード)」という文字コード体系が使われている。これにより

多言語に対応できる。

Page 2: OS No.11 Webサーバへのファイル転送と文字コード変換...OS基礎演習~No.11 2 3.ファイル転送時の注意点 ftpを行う際にはいくつかの注意点がある。最初の注意点は、転送すべきファイルがバイナリファイルであ

OS 基礎演習~No.11

2

3.ファイル転送時の注意点

ftp を行う際にはいくつかの注意点がある。最初の注意点は、転送すべきファイルがバイナリファイルであ

るのか、テキストファイルであるのかによって、異なる転送モードを使用せねばならないという点である。

バイナリファイルはバイナリ(binary)モードで、テキストファイルはアスキー(ascii)モードで転送する

必要がある。転送モードを間違えるとファイルが正しく転送できない。例えば、テキストファイル以外の形

式のファイル(バイナリファイル)を ascii モードで転送してしまうと、改行コードに相当する部分が取り除

かれてしまうなど、余計な処理が行われてファイルが破損してしまう。また、テキストファイル転送時に、

binary モードを使用してしまうと、行末の改行コードがうまく処理されない。 次に注意するのは、テキストファイル転送時に、ローカル側とリモート側の各々のシステムで使用されて

いる全角文字コード(漢字コード)が何かという点である。先に述べたように、テキストファイルの転送時

には ascii モードを選択しなければならない。PC と UNIX ではテキストファイルの改行文字が異なるためで

ある。さらに、PC 側(ローカル側)で使用している漢字コードはシフト JIS であるが、本学の Web サーバ

(リモート側)では EUC を使用しているため、漢字コード変換を行わないと文字化けが発生する(図 1)。 WebサーバとPC間でのファイルの転送にはFTPを使用するが、基本的には漢字コード変換は行われない。 コマンドプロンプトの ftp を使う場合には、UNIX 上で手動による漢字コード変換を行う必要がある。こ

の方法については 4 章で述べる。 一方、ツールによっては、転送時に漢字コード変換処理を行うものもある。FFFTP には、転送するファイ

ルがテキストファイルであるか否かを識別して、適切なモードを自動的に選択してくれる機能がある。しか

しこの機能は万能ではない。この機能は、単にファイルの拡張子によってテキストファイルを識別している

にすぎない。通常の設定でテキストファイルとして認識されるのは、拡張子が「.txt」「.html」「.htm」「.cgi」「.pl」となっているファイルのみであり、それ以外のファイルはバイナリモードで転送される。例えば、「.c」のような拡張子を持つファイルを ascii モードで転送するためには、拡張子を登録しておくか、明示的に asciiモードでの転送を選択しなければならない。

転送するファイルの形式を認識して、正しい設定で転送を行うように常に意識するようにしよう。

ascii モード+ EUC 変換で転送

ascii モード+ 無変換で転送

バイナリモード で転送

図 1 テキストファイルの転送と転送モード・漢字コード変換

Page 3: OS No.11 Webサーバへのファイル転送と文字コード変換...OS基礎演習~No.11 2 3.ファイル転送時の注意点 ftpを行う際にはいくつかの注意点がある。最初の注意点は、転送すべきファイルがバイナリファイルであ

OS 基礎演習~No.11

3

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