axlopeとは何か インストール アンインストール 使い方 テクニカルノート 制限事項 ライセンスについて おわりに |
テクニカルノート日本語のファイル名やディレクトリ名についてウエッブアプリケーションで悩み多いのが日本語(2バイトコード)の扱いです。 axlope では、日本語のコードとして UTF-8 を使 います。ま、ここまでなら、さほどの問題はないのですが、問題になるのは、日本 語のファイル名やディレクトリ名です。OS ごとに文字コードは違います、ウエッブ サーバーの設定や PHP の設定など考えることは色々あります。ver.1.xではこの問題を解決するために、ファイル名やフォルダ名をURL エンコード して使用する ことにしました。これは、PHPのマルチバイト文字列関数 (mb_xxxxx)を使うことにためらいがあったためです。 ver.2.0では、このためらいを捨てて、マルチバイト文字列関数 を積極的に利用し、OSの文字コードでフォルダやファイルを管理してみました。 日本語のファイル名のダウンロードについてウエッブサーバー(PHP)がファイルをクライアントに送信する場合、一般的には、header("Content-Type: application/octet-stream; Charset=UTF-8"); header("Content-Disposition: attachment; filename="file_name.jpg"); --以下ファイルの中身を送信--とします。しかし、ファイル名に日本語が使われており、クライアントがインター ネットエクスプローラの場合、ファイル名が文字化けしてしまいます。 「ファイルをダウンロード する ASP.NET Web ページで日本語ファイル名が文字化けする」 に従い、ユー ザーエージェントに MSIE が含まれている場合、ファイル名を URL エンコードして います。具体的には、axlope13.inc をご覧下さい。 ソースコードについてソースコードの漢字コードはUTF-8です。また、改行文字はLFです。ソース を見る場合は注意してください。ソースファイルには、適宜コメントが入れてあり ます。技巧的なことは全くしていませんので、少し見れば何をしているかがわかる と思います。また、関数の最初に、例えば次のようにfunction SendDirDlog() //ディレクトリーツリー情報を返す Ajax { global $gRootDir,$gDirTree,$gMsg; $gDirTree = array(); ScanDirs("/"); //再帰検索関数や引数の説明がしてあります。 変数の接頭辞規則は(病的かもしれませんが)次のようなものです。 PHP/JS/C/C++言語 定数 c define定義 k グローバル変数 g 引数 p ローカル変数 a the (あまりこだわっていない) クラスメンバー変数 m クラス U (C++BuilderのクラスがTで始まるから) HTML/CSS クラス c ID i name n参考にしてください。 |