axlopeとは何か インストール アンインストール 使い方 テクニカルノート 制限事項 ライセンスについて おわりに |
テクニカルノート日本語のファイル名やディレクトリ名についてウエッブアプリケーションで悩み多いのが日本語(2バイトコード)の扱いです。 axlope では、日本語のコードとして UTF-8 を使 います。ま、ここまでなら、さほどの問題はないのですが、問題になるのは、日本 語のファイル名やディレクトリ名です。OS ごとに文字コードは違います、ウエッブ サーバーの設定や PHP の設定など考えることは色々あります。また、スペースを含 むファイル名を作ることができない場合があります。いろいろ考えるとめんどうに なるので、axlope では、日本語のファイル名や ディレクトリ名を URL エンコード して使用する ことにしました。URLエンコードすると、例えば 漢字.jpgは、 %E6%BC%A2%E5%AD%97.jpgになります(漢字コードが UTF-8 の場合)。サーバーを直接のぞいたときに、変な ファイルがあると言って驚かないでください。URL エンコードで、日本語1文字 (2バイト)は9バイトになります。Windows のように、絶対パスの長さに上限が ある OS では、漢字で何階層ものディレクトリを作ると、エラーが発生することが あります。 日本語のファイル名のダウンロードについてウエッブサーバー(PHP)がファイルをクライアントに送信する場合、一般的には、header("Content-Type: application/octet-stream; Charset=UTF-8"); header("Content-Disposition: attachment; filename="file_name.jpg"); --以下ファイルの中身を送信--とします。しかし、ファイル名に日本語が使われており、クライアントがインター ネットエクスプローラの場合、ファイル名が文字化けしてしまいます。 「ファイルをダウンロード する ASP.NET Web ページで日本語ファイル名が文字化けする」 に従い、ユー ザーエージェントに MSIE が含まれている場合、ファイル名を URL エンコードして います。具体的には、axlope03.inc をご覧下さい。ファイル名を URL エンコード しますので、半角スペースは「+」に変換されてしまいます。 ソースコードについてソースコードの漢字コードはUTF-8です。また、改行文字はLFです。ソース を見る場合は注意してください。ソースファイルには、適宜コメントが入れてあり ます。技巧的なことは全くしていませんので、少し見れば何をしているかがわかる と思います。また、関数の最初に、例えば次のようにfunction MakeDirArray($pDir,&$pDirA,&$pDirB) //一覧表で使うディレクトリ行列を作る //引数 $pDir:ディレクトリ // &$pDirA:累積のパス配列を入れて返す // &$pDirB:個別のパス配列を入れて返す { global $gMsg;関数や引数の説明がしてあります。 変数の接頭辞規則は(病的かもしれませんが)次のようなものです。 PHP/JS/C/C++言語 定数 c define定義 k グローバル変数 g 引数 p ローカル変数 a the (あまりこだわっていない) クラスメンバー変数 m クラス U (C++BuilderのクラスがTで始まるから) HTML/CSS クラス c ID i name n参考にしてください。 |