Top Banner
日日日 Windows 日日日日日日日日日日 fs_moodle 日日日日日日日日 日日日日日日日日日日 日日日日日 (Suzuka National College of Technology, Mechanical Engineering) 日日 日日 (Tatsuya SHIRAI) [email protected] Introduce of fs_moodle package
20

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

Jan 05, 2016

Download

Documents

kiora

ど~した もんだか. 日本語 Windows とモバイル機器に強い fs_moodle パッケージの紹介. Introduce of fs_moodle package. 鈴鹿工業高等専門学校 機械工学科 (Suzuka National College of Technology, Mechanical Engineering) 白井 達也 (Tatsuya SHIRAI) [email protected]. 日本語 Windows OS が抱える File System の問題点(仕様)を - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 日本語 Windows とモバイル機器に強い fs_moodle パッケージの紹介

日本語 Windows とモバイル機器に強い

fs_moodle パッケージの紹介

鈴鹿工業高等専門学校 機械工学科(Suzuka National College of Technology,

Mechanical Engineering)

白井 達也 (Tatsuya SHIRAI)

[email protected]

Introduce of fs_moodle package

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

日本語 Windows OS が抱える

File System の問題点(仕様)を

解決するための仕組み

( fsconverter.php からスタート)

もう少しだけ詳しく, fs_moodle の仕組みを解説

fs_moodle (エフエス・ムードル)とは?

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

本校で2007年2月に三重大学の奥村教授が Moodle に関する講演を行なう.

研究室で使うグループウェアを探し続けていたところなので,早速,部屋に戻ってから情報収集,そのまま一気にインストール(できてしまった)

余剰のPC( Compaq DeskProEN, Pentium 866MHz, Ⅲ  30GB HDD, 386MB RAM, Windows2000)

非常に遅いが,一応,動作した.

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

OSはLinux , Mac OS, Windows が利用可能!

なのだが!♪

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

Windows(WindowsServer含む)は確かにOKなのだが,

日本語 Windows ( 日本語 WindowsServer 含む ) には

致命的な問題点のあることが,「使ってみてから判明」

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

「あ,それは仕様です」

名前に日本語を含むファイルやフォルダが

使えない!

議事録 20081114.doc

二分法 .c

予算割り当て .xls

ロボット工学その1 .ppt

「 Web 上で日本語のファイル名を使うのは 御法度でしょ,そんなの常識,常識」

(注)  Linux, Mac OS ならば問題なし

そんなことはない!利用者にお願い強制など不可能!

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

Why?

Linux, Mac OS

ファイルシステムの違いです

UTF-8 に対応できる自由でシンプルなシステム

日本語 Windows

マルチバイトは Shift JIS を前提

( NTFS :内部では UTF-16 )

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

Unicode

多言語の文字を単一の文字コードで取り扱うために1980 年代に提唱

当初は 16bit  →  Unicode2.0 から 21 ビットに拡張.

( 16bit の領域)基本多言語面( BMP: Basic Multilingual Plane )最も使われる基本的な文字・記号がほとんど含まれる.(実用的に Unicode 16≒ ビットの BMP )

UTF-8/16 は Unicode の文字符号化方式の名称( Unicode Transformation Format )

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

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バイトを要する.

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

Moodle を介したファイルのやり取りは...

•(PDFなどの)配布用ファイル•フォーラムの添付ファイル•電子メールの添付ファイル•提出課題の提出物 などなど.

管理者はともかく,教師,学生に半角英数字しか使っちゃだめ!とは言えない

実際,不便ですし...

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

具体例(コースファイル) Explorer (on Windows)

123

TEST1

実践工業数学123TEST1実践工業数学参考文献 .txt

半角はOK全角も全てが化ける訳ではない

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

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?) ん? 変な名前だな.」

Explorer (on Windows)

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

具体例(コースファイル)

正しい例 ( Moodle → fs_moodle )

Explorer (on Windows)

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

96 66 FF 69 30 FB 30 FB 00 64 00 6F 00 63

E8 A1 A8 EF BC 91 2E 64 6F 63

表 1 . d o cUTF-8

(S-JIS)陦 d o cイ ・ ・

UTF-16

E8 A1 A8 81 45 81 45 64 6F 63

陦 d o cイ ・ ・(S-JIS)

表 (?) E d o c(?) EUTF-8

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

つまり日本語 Windows は...

アプリケーションから渡されたファイル名の文字コードがASCII 文字( 7bit )ではない場合

シフトJIS( CP932) のハズだ!と勝手に思い込んでしまう

ならば...

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

それに対して, fs_moodle は ...

ファイル名を UTF-8 からシフト JIS に変換してから渡してあげよう

(妥協)

Moodle ソースリスト中のファイル I/O 関数を独自の関数でオーバーライド

( UTF-8  ←→ シフト JIS )(膨大な数 ... やりました)

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

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()

function send_temp_file_finished($path) {

// (FS_CONVERTER): ここから// if (file_exists($path)) {

if (fs_file_exists($path)) {

// @unlink($path);

@fs_unlink($path);

// (FS_CONVERTER): ここまで }

}

例) file_exists(), unlink()

fs 関数:各関数名の頭に fs_

各関数はファイル名をUTF-8←→ シフト JIS 変換

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

Moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

表1. doc

ファイルI/O関数

fs_moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

表1. doc

fs関数

ファイルI/ O関数

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

fs_moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

表1. doc

fs関数

表1. doc

UTF-8↓

S-JIS

ファイルI/O関数

S-JIS↓

UTF-16 表1. doc

Moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

S-JIS↓

UTF-16

表1. doc

表1. doc

ファイルI/ O関数

陦ィ・・doc

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

fs_moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

表1. doc

fs関数

表1. doc

UTF-8↓

S-JIS

ファイルI/ O関数

表1. doc

S-JIS↓

UTF-16 表1. doc

Moodle  (UTF-8)

PHP

日本語Windows

HDD(UTF-16)

S-JIS↓

UTF-16

表1. doc

表1. doc

ファイルI/O関数

陦ィ・・doc

陦ィ・・doc