Presentation is loading. Please wait.

Presentation is loading. Please wait.

日本語Windowsとモバイル機器に強い fs_moodleパッケージの紹介

Similar presentations


Presentation on theme: "日本語Windowsとモバイル機器に強い fs_moodleパッケージの紹介"— Presentation transcript:

1 日本語Windowsとモバイル機器に強い fs_moodleパッケージの紹介
ど~した もんだか... Introduce of fs_moodle package 鈴鹿工業高等専門学校 機械工学科 (Suzuka National College of Technology, Mechanical Engineering) 白井 達也 (Tatsuya SHIRAI)

2 解決するための仕組み (fsconverter.phpからスタート)
fs_moodle(エフエス・ムードル)とは? 日本語Windows OSが抱える File System の問題点(仕様)を 解決するための仕組み (fsconverter.phpからスタート) もう少しだけ詳しく,fs_moodleの仕組みを解説

3 本校で2007年2月に 三重大学の奥村教授がMoodleに関する講演を行なう. 研究室で使うグループウェアを 探し続けていたところなので, 早速,部屋に戻ってから情報収集, そのまま一気にインストール(できてしまった) 余剰のPC (Compaq DeskProEN, PentiumⅢ866MHz,  30GB HDD, 386MB RAM, Windows2000) 非常に遅いが,一応,動作した.

4 OSは Linux,Mac OS, Windows が利用可能! なのだが!

5 (日本語WindowsServer含む)には
Windows(WindowsServer含む)は確かにOKなのだが, 日本語Windows (日本語WindowsServer含む)には 致命的な問題点のあることが, 「使ってみてから判明」

6 名前に日本語を含む ファイルやフォルダが 使えない! そんなことはない! 利用者にお願い強制など不可能!
「あ,それは仕様です」 名前に日本語を含む ファイルやフォルダが 使えない! 議事録 doc 二分法.c 予算割り当て.xls ロボット工学その1.ppt 「Web上で日本語のファイル名を使うのは  御法度でしょ,そんなの常識,常識」 そんなことはない! 利用者にお願い強制など不可能! (注) Linux, Mac OSならば問題なし

7 Why? Linux, Mac OS 日本語Windows UTF-8に対応できる 自由でシンプルなシステム
ファイルシステムの違いです Linux, Mac OS UTF-8に対応できる 自由でシンプルなシステム 日本語Windows マルチバイトはShift JISを前提 (NTFS:内部ではUTF-16)

8 Unicode 多言語の文字を単一の文字コードで取り扱うために 1980年代に提唱 当初は16bit → Unicode2.0から21ビットに拡張. (16bitの領域) 基本多言語面(BMP: Basic Multilingual Plane) 最も使われる基本的な文字・記号がほとんど含まれる. (実用的にUnicode≒16ビットのBMP) UTF-8/16はUnicodeの文字符号化方式の名称 (Unicode Transformation Format)

9 MoodleはUTF-8に対応済み (見落し有り...)
Unicode (UTF-8) Unicode(主に16ビット)を 1~3バイトで表す可変長の符号化法 頭1ビットが0であれば1バイト長 頭3ビットが110であれば2バイト長の先頭バイト 頭4ビットが1110であれば3バイト長の先頭バイト 頭2ビットが10であれば2バイト長以上の2バイト目以降 であることが容易に判別可能. MoodleはUTF-8に対応済み (見落し有り...) ASCII文字列 → UTF-8(1バイト)は完全に同一  → 日本語文字化けの主要因!(海外製ソフトウェア) 日本語文字は必ず3バイトを要する.

10 (PDFなどの)配布用ファイル フォーラムの添付ファイル 電子メールの添付ファイル 提出課題の提出物 などなど. 管理者はともかく,
Moodleを介したファイルのやり取りは... (PDFなどの)配布用ファイル フォーラムの添付ファイル 電子メールの添付ファイル 提出課題の提出物 などなど. 管理者はともかく, 教師,学生に 半角英数字しか使っちゃだめ! とは言えない 実際,不便ですし...

11 具体例(コースファイル) 半角はOK 全角も全てが化ける訳ではない 123 TEST1 実践工業数学 123 TEST1
Explorer (on Windows) 123 TEST1 実践工業数学 123 TEST1 実践工業数学参考文献.txt 半角はOK 全角も全てが化ける訳ではない

12 “表1.doc”(E8 A1 A8 EF BC 91 2E 64 6F 63 :UTF-8) という名前で保存して」
Explorer (on Windows) Moodle (PHP) 「このデータを “表1.doc”(E8 A1 A8 EF BC 91 2E 64 6F 63 :UTF-8) という名前で保存して」 日本語 「OK. “陦イ・・doc” (E8 A1 A8 EF BC 91 2E 64 6F 63 :S-JIS?) ん? 変な名前だな.」

13 具体例(コースファイル) Explorer (on Windows) 正しい例 (Moodle → fs_moodle)

14

15 アプリケーションから渡されたファイル名の文字コードが
つまり日本語Windowsは... アプリケーションから渡されたファイル名の文字コードが ASCII文字(7bit)ではない場合 シフトJIS(CP932)のハズだ!と 勝手に思い込んでしまう ならば...

16 シフトJISに変換してから渡してあげよう
それに対して,fs_moodleは... ファイル名をUTF-8から シフトJISに変換してから渡してあげよう (妥協) Moodleソースリスト中のファイルI/O関数を 独自の関数でオーバーライド (UTF-8 ←→ シフトJIS) (膨大な数...やりました)

17 fs関数:各関数名の頭に fs_ 各関数はファイル名を UTF-8←→シフトJIS変換 例) file_exists(), unlink()
chmod() copy() file() file_exists() file_get_contents() file_put_contents() filectime() filemtime() filesize() filetype() fopen() getimagesize() imagecreatefromgif() imagecreatefromjpg() imagecreatefrompng() imagecreatefromwbmp() imagecreatefromxbm() imagecreatefromxpm() is_dir() is_executable() is_file() is_readable() is_uploaded_file() md5_file() mkdir() move_uploaded_file() opendir() readdir() readfile() rename() rmdir() scandir() sha1_file() unlink() fs関数:各関数名の頭に fs_ 各関数はファイル名を UTF-8←→シフトJIS変換 例) file_exists(), unlink() function send_temp_file_finished($path) { // (FS_CONVERTER): ここから // if (file_exists($path)) { if (fs_file_exists($path)) { // @unlink($path); @fs_unlink($path); // (FS_CONVERTER): ここまで }

18

19

20


Download ppt "日本語Windowsとモバイル機器に強い fs_moodleパッケージの紹介"

Similar presentations


Ads by Google