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

Slides:



Advertisements
Similar presentations
Outlook メール文字化けの原因と対策 Exchange Server 環境編. 目次はじめに文字化けのよくある原因と回避策 1. A:半角英数字、ヨーロッパ言語などが混在した 文字化け B : 送信済みメールの宛先や CC の文字化け 2. 返信、転送時の、ユーザー名や件名の文字化け 3. 日本語が半角英数字に文字化け.
Advertisements

Webmail IMP の日本語化 筑波大学 研究基盤総合センター 木村 博美. レジュメ IMP の紹介 作業の経過 日本語化の作業内容 今後.
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
1 Layout Utilities の紹介 Layout Utilities とは、お客様のプログラムに 流し込み印刷を簡単に組み込めるソフトウエア開発ツールです 無償 流し込み印刷の例.
Copyright © the University of Tokyo 文字化けの背景を知る. Copyright © the University of Tokyo 課題の概要 日本語の文字コードについて理解を深める  MacOS( テキストエディット ) で利用可能なエ ンコーディング ( コード化方式.
Copyright © the University of Tokyo 文字化けの背景を知る. Copyright © the University of Tokyo 課題の概要 日本語の文字コードについて理解を深める  MacOS( テキストエディット ) で利用可能なエ ンコーディング ( コード化方式.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
「コンピュータと情報システム」 03章 ソフトウェア
情報処理3 アプリケーション プログラミング 今井孝明.
GTK+/GLibのファイル名エンコーディング
Unix の ファイルシステム(File System)
富山大学 公開講座 2008 「QRコードを作ろう!」 ~ QRコードを作ろう! ~.
文字列検出ツール "istrings" の使い方
「情報」 (中村) オリジナル PPT (2010/05/07) 1 1.
物理実験 I 情報実験第9回 2004/12/10 小西 丈予 2003/12/12 中神 雄一
物理実験 I 情報実験第9回 Modified 2005/12/2 徳永 義哉Original 2003/12/12 中神 雄一
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
情報処理演習C2 ファイル操作について (2).
Java I 第2回 (4/18)
Moodleの基本機能を強化した eラーニングシステム fs_moodleの開発
情報アプリケーション1 2008年 11月 19日 第二回資料 担当 重定 如彦 .
情報科学 成蹊大学非常勤講師 竹内 光悦.
情報工学基礎(改訂版) 岡崎裕之.
+ 普段使い慣れている WindowsPC 日本語対応が進んだ Moodle 一人で自室で 研究室でワイワイ の単位からスタート 「いつも忙しい皆様には...」 普段使い慣れている WindowsPC + 日本語対応が進んだ Moodle 一人で自室で 研究室でワイワイ の単位からスタート.
コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
はじめに Linuxでの科学文書作成 Windowsでの科学文書作成
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月11日 Ⅲ限目.
Debian GNU/Linux ー Linuxインストールに必要な基礎知識 ー 三上 彩 鈴木 倫太郎
(original Takagi & Saito, 2007)
第2章 ソフトウェアの基礎知識.
心理学情報処理法Ⅰ コンピュータにおけるデータ表現 マルチメディアとコンピュータ.
井上 謙次 / deq kenz at oct.zaq.ne.jp
文字化けの背景を知る.
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
フォームからリクエストを受け取る <2/6>
情報コミュニケーション入門 2016年度版 情報コミュニケーション入門m 総合実習(1).
2012年度 情報数理 ~ QRコードを作ろう!(1) ~.
2008年度 情報数理 ~ QRコードを作ろう!(1) ~.
Outlook メール文字化けの原因と対策
1.コンピュータと情報処理 p.14 第1章第1節 1.わたしたちの生活と情報技術 情報機器の発展 情報機器は,アナログデータから
情報処理同実習 2007 担当:佐藤春樹、TA:中山君、橋本君、山本君
Webページを公開しよう! 公開前の点検とファイル転送 ユーザ名~user○○○ パスワード~自分で設定したもの
Cygwin の install.
報告4:蔵書評価における文字コード問題について
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
2010年度 情報数理 ~ QRコードを作ろう!(1) ~.
文字化けの背景を知る.
1 Macの基本操作 1-5 文字入力(1/4)  (1)Windows風のキー設定
文字化けの背景を知る.
第8章 Web技術とセキュリティ   岡本 好未.
情報処理基礎 2006年 5月 18日.
Office IME 2010 を使う.
プログラミング応用 printfと変数.
文字コード 情報処理3 今井孝明.
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
文字の表現.
実行時情報に基づく OSカーネルのコンフィグ最小化
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
第4回 コンピューティングの要素と構成 平成22年5月10日(月)
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
文字エンコーディング 2010年7月.
第2章 ソフトウェアの基礎知識 電子制御設計製図Ⅰ    2010年5月19日 Ⅱ限目.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
日本語独特のL10N問題とは? 各社仕様の拡張文字 複数の符号化 規格の混乱など Unicodeとのマッピング
オペレーティングシステム 作成 T21R003 荏原 寛太.
CADシステムとソフトウェア 電子制御設計製図Ⅰ    2009年4月28日 Ⅲ限目.
情報スキル入門 第7週 データの取り扱いと表現.
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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): ここまで }