質問: ファイルを添付できる掲示板を作っています。windowsの日本語ファイル(ほげほげ.docなど)もアップロードできるようにしたいです。 サーバはlinuxです。 ブラウザはwindows+IEが標準的です。 サーバ側にアップするファイルは、ファイル名をsjisにするのがいいのでしょうか。それともEUCでしょうか。
回答: Google はしご高のように、SJIS (CP932) にはあって EUC にない文字というものがあるので、SJIS を EUC に変換して、というのはそういう意味であまり望ましくないと思います。 しかし、Linux のファイルシステム上に生の SJIS 名のファイルをサーバに置くというのもあまり好ましくないと思いますので、私が同様に日本語のファイル名を許可したファイル添付掲示板を作成した時には、SJIS を一定のルールに基づいて1バイト文字の羅列に変換 (例えば「あ」は 0x82,0xA0 の2バイトのバイト列なので、~82~A0 という6文字に変換) してサーバ上に保存する仕様としました。 そして、アップロードされたファイルをダウンロードする時には、ダウンロード専用 CGI (http://~/download.cgi/あ.doc としてアクセスすると、サーバ上の「~82~A0.doc」の内容を送り返すようなもの) を経由させるようにし、利用者側からはサーバ上の変換状態を意識せずに済むようにしました。