ファイルのアップロード、ダウンロード時に文字化けします

ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿
返信数: 87

始めまして。Moodle1.8を使用しています。

ファイルのアップロード時に、日本語を使用すると文字化けしてしまい、

リンクを選択しても「ページが見つかりません」になってしまいます。

また、ファイルを英数字にするとファイルアップロードとリンクは成功するのですが、

中身が文字化けしてしまいます。

ログや成績表のダウンロード時もエクセル形式でダウンロードしても、中身が

文字化けしてしまい、見れません。そもそもエクセルとして認識されてない様子です。

前のバージョンの文字化け対策の書き込みを見て、色々試してみたのですが

解決できません。(file.phpを修正)

基本的なことかもしれませんが、情報いただければ有難いです。

宜しくお願いします。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

>ファイルのアップロード時に、日本語を使用すると文字化けしてしまい、リンクを選択しても「ページが見つかりません」になってしまいます。


山田様

よろしければ下記情報を教えていただけませんでしょうか。笑顔
  1. Moodleがインストールされているサーバのオペレーティングシステム (例 Linux)
  2. PHPのバージョン
  3. データベースの種類 (例 MySQL)
  4. Moodleの「管理 > サーバ > 動作環境」の「状態」がすべてOKになっているかどうか。
また、「中身が文字化けしてしまいます」とは、テキストファイルをアップロードした後、クリックしてポップアップウィンドウの中に内容を表示した場合、文字化けしてしまうということでしょうか。
Mitsuhiro Yoshida への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Yoshida様

返信ありがとうございます!!(> <)

環境の情報をお伝えさせていただきます。

1.Moodleがインストールされているサーバのオペレーティングシステム

 →Linux

2. PHPのバージョン → PHP5.1.6

3. データベースの種類  → MySQL 5.0.27

4. Moodleの「管理 > サーバ > 動作環境」の「状態」がすべてOKになっているかどうか。
→ 全てOKです。

また、中身が文字化けしてしまうというのは、

ファイル名が英数字のものをアップロードした後、クリックしてポップアップウィンドウの中に表示した場合、文字化けしてしまいます。

(テキストファイルを保存する時、文字コードを「UTF-8」を選ぶと中身は文字化けしません)

また、ファイル名が日本語だと、ファイル名が文字化けしてしまって「申し訳ございません。ファイルが見つかりませんでした」のエラー画面に遷移してしまいます。

あと、ログファイルや成績表をダウンロードしても中身が文字化けしてしまいます。

つたない説明で申し訳ございません。

お忙しいとは思いますが、宜しくお願いします。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

問題を整理しましょう.

  1. ファイル名に日本語を用いたファイルをアップロードできない問題
  2. UTF-8以外の文字コードで保存したテキストファイルをアップロードすると閲覧および編集画面で文字化けする問題.
  3. Moodleが自動生成するExcelファイル(ログファイル,成績表?)をダウンロードすると,中身が文字化けする問題.

 1.の問題は今までにこのフォーラムに報告されているパッチをあてることで解決される可能性が高いです.ただ,Moodleのバージョン(1.8以前と1.8以降,さらに1.8.3+の2007年11月以降のバージョン)によってパッチが多少,異なるかも知れません.あまり分かりやすくまとめていませんので,分かりにくいかも知れません.

 2.に関しては仕様です.アップロードするテキストファイルはUTF-8で作成して頂くしかありません.

 3.に関しては,ダウンロードするファイル名やワークシート名の化ける問題はオリジナルのままでは発生しますが,Excelの内部文字コードもUTF-8ですので中身は化けないはずです.もし,Moodleの文字コードの設定がUTF-8以外ならば発生する可能性はありますが,それですと2の問題と矛盾します(UTF-8文字コードで保存したテキストファイルは化けずに表示される).したがって,3の問題は私には分かりません.


 2の問題はMoodleのソースコードを変更することで対策できなくはありませんが,痛し痒しなところがあります.

(対策1)閲覧はできるが編集はできない改造:
 ポップアップウィンドウにテキストファイルの中身を表示する際に文字コードをUTF-8に自動変換して出力するだけの改造.アップロードされたテキストファイルはオリジナルのまま(例えばシフトJIS)なのでMoodle上で編集はできません.

(対策2)閲覧も編集もできるがダウンロードすると問題がある改造:
 ファイルをアップロードする際に,ファイルの中身を確認して自動的に文字コードをUTF-8に変換してしまう.ただし,ダウンロードするとテキストファイルの中身がUTF-8に変換されていますので,UTF-8に対応したテキストエディタを使っていない人は混乱するでしょう(シフトJISのテキストファイルをアップロードしたのに,ダウンロードするとUTF-8に変換されている).


 では,現実にどのように運用すれば良いのか.

(1)テキストファイルをアップロードした後に,必ず”編集”で,アップロードしたテキストファイルの中身をお手元のテキストエディタからCopy&Pasteして貰う.
(2)UTF-8で保存できるテキストエディタを用いてテキストファイルを作成して貰う.

 いまのところはこの2つの方法しか思いつきません.

評点平均: お役立ち度: ★★★☆☆☆☆ (1)
Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

2の問題の対策1と対策2を考えてみました.Moodle1.8.3+用です.

(対策1)閲覧はできるが編集はできない改造:
 lib/flielib.phpのfunction send_file()の後半(430行あたり),

    if (empty($filter)) {
        if ($mimetype == 'text/html' && !empty($CFG->usesid) && empty($_COOKIE['MoodleSession'.$CFG->sessioncookie])) {
            //cookieless mode - rewrite links
            @header('Content-Type: text/html');
            $path = $pathisstring ? $path : implode('', file($path));
            $path = sid_ob_rewrite($path);
            $filesize = strlen($path);
            $pathisstring = true;
        } else if ($mimetype == 'text/plain') {
//          @header('Content-Type: Text/plain; charset=utf-8'); //add encoding
            @header('Content-Type: Text/plain; charset=sjis'); //add encoding
        } else {
            @header('Content-Type: '.$mimetype);
        }
        @header('Content-Length: '.$filesize);
        while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
        if ($pathisstring) {
            echo $path;
        } else {
//          readfile_chunked($path);
            $contents = mb_convert_encoding(file_get_contents($path), 'UTF-8', 'auto');
            echo $contents;
        }

 2種類の改造方法を示しているので注意して下さい.赤とピンクは同時に行ってはいけません.

 赤文字の修正を行うことでシフトJISのテキストファイルはそのままで表示できますが,この赤文字の改造だけではUTF-8のテキストファイルは文字化けしますので,ファイルの文字コードに応じてcharsetを変更する必要があります.一番,影響の少ない改造です.

 ピンクの修正は少し影響の多い修正です.readfile_chunked($path) は指定されたファイルを1MBごとにバイナリーモードで読み出して送信する関数です.これを用いずに,file_get_contents()関数で一気にテキストファイルを読み出してUTF-8にエンコードしています.(たとえば100MBのテキストファイルを表示しようとすると,少なくともサーバは100MBのメモリを使ってしまうなど,パフォーマンスに悪影響のでる可能性があります)


(対策2)閲覧も編集もできるがダウンロードすると問題がある改造:(の亜流)

 こちらの対策は少し利用者に慣れを要求しますが,このくらいの手間をお願いして”文字コードが複数存在するんだ”ということを理解して頂いた方がシステム運営上は好ましい気がします.なお,”閲覧も編集もできるが”とは一部異なります.
 アップロードした直後に閲覧すると文字化けが発生します.ただし,”編集”画面に行くと文字化けが”直ります(UTF-8へ自動変換しています)”.そのまま”変更を保存します”をクリックして貰えば,UTF-8に変換されたテキストファイルが上書きされます.したがって,この編集後のテキストファイルをクライアントPC側にダウンロードすると,文字コードはUTF-8に変わっています.
 files/index.phpの460行近辺,

         case "edit":
            html_header($course, $wdir);
            if (($text != '') and confirm_sesskey()) {
                $fileptr = fopen($basedir.'/'.$file,"w");
                $text = preg_replace('/\x0D/', '', $text);
                fputs($fileptr, stripslashes($text));
                fclose($fileptr);
                displaydir($wdir);

            } else {
                $streditfile = get_string("edit", "", "<b>$file</b>");
                $fileptr  = fopen($basedir.'/'.$file, "r");
                $contents = fread($fileptr, filesize($basedir.'/'.$file));
       if (($enc_str = mb_detect_encoding($contents)) != 'UTF-8') $streditfile .= '<BR><small>(文字コードを'.$enc_str.'からUTF-8に変換しました)</small>';
                $contents = mb_convert_encoding($contents, 'UTF-8', $enc_str');
                fclose($fileptr);

                if (mimeinfo("type", $file) == "text/html") {
                    $usehtmleditor = can_use_html_editor();
                } else {
                    $usehtmleditor = false;
                }
                $usehtmleditor = false;    // Always keep it off for now

                print_heading("$streditfile");

何も表示しないと文字コードの変換に気付かないと思うので,編集ファイル名の表示に少し手を加えてみました.

 個人的には(対策1)のピンクと(対策2)の組み合わせが良いと思います.なお,テキストファイル以外に影響を与えることは無いと思いますが,完全にチェックしたわけではありませんので,御注意下さい.

評点平均: お役立ち度: ★★★★★☆☆ (1)
Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

いけない! 大きなミスをしていました.

ピンクの部分の修正はテキストファイルのみ適用する必要があります.

    if (empty($filter)) {
        if ($mimetype == 'text/html' && !empty($CFG->usesid) && empty($_COOKIE['MoodleSession'.$CFG->sessioncookie])) {
            //cookieless mode - rewrite links
            @header('Content-Type: text/html');
            $path = $pathisstring ? $path : implode('', file($path));
            $path = sid_ob_rewrite($path);
            $filesize = strlen($path);
            $pathisstring = true;
        } else if ($mimetype == 'text/plain') {
//          @header('Content-Type: Text/plain; charset=utf-8'); //add encoding
            @header('Content-Type: Text/plain; charset=sjis'); //add encoding
        } else {
            @header('Content-Type: '.$mimetype);
        }
        @header('Content-Length: '.$filesize);
        while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
        if ($pathisstring) {
            echo $path;
        } else {
//       readfile_chunked($path);
           if ($mimetype != 'text/plain') {
               readfile_chunked($path);
           } else {
                $contents = mb_convert_encoding(file_get_contents($path), 'UTF-8', 'auto');
                echo $contents;
           }
        }

こうです.text/plainではない場合はreadfile_chunked()を使用してバイナリーで転送しないといけません.

 #何気なくExcelをダウンロードしたら文字化けしており,「問題3発生か!?」と動揺してしまいました赤面.もちろん,上記訂正を施すことで,いままで通りに普通にアップロードされたExcelファイルは正しくダウンロードできました.
#問題3に関しては,もう少し詳しく発生状況をレポートして頂けないでしょうか > 山田さん.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Shirai様

親身に教えていただいてありがとうございます。m(_ _)m

Moodleをインストールしてfile.php以外、何も修正を加えてない状態です。

その状態で レポート->ログ->Excelフォーマットでダウンロードをする

でダウンロードすると、ダウンロードは成功するのですが、

そのエクセルファイルを開こうとしたらエラーメッセージが表示されます。

エラーダイアログのキャプチャを添付させていただきます・・

---------------------------------------------------------------------------

日本語ファイル名の問題は、まだ対応していません。

問題1に関してはどのパッチを当てれば宜しいのでしょうか?

質問ばかりでスイマセン・・

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 なるほど.レポートー>ログー>Excelフォーマットでダウンロードをする,で,おかしなExcelファイルがダウンロードされるのは確認しました.ただ,Excel2003ですと,修復機能が働いて,ファイルの中身は無事に見ることが出来ました.このような問題は「評定」のダウンロードでは(以前確認したときには)発生しませんので,ログの出力にバグがあるのかも知れません.

 さて,問題1の件ですが,一番大事なのは以下の修正です.

http://www.nufs.ac.jp/~matsmura/my_server/How_to_install_Moodle_and_MY_Server_on_Windows_Vista.htm

抜粋します.

2.1) config.php の編集

このファイルは、 $CFG-> で始まるいくつかの行があるが、その最後に次の 4 行を追加する。

//////////// 次の2行追加
$CFG->unicodedb = true;
$CFG->unicodecleanfilename = true;
////////////  上の 2 行を追加

 私も以前に試験的にクリーンインストールした際に,このことをスッカリ忘れており,全くファイルがアップロードできませんでした...まずは,この追加を行ったかを教えて下さい.

 フォーラム上に報告されている日本語ファイルの問題は,主にIEを使ってファイルをダウンロードする際に,クライアントPC側上でファイル名が化けてしまう問題に対する対策です.アップロードに関しては上記のconfig.php (Moodleをインストールしてあるルートのフォルダ内にあります)だけで大丈夫だったと記憶しています. 


 日本語をMoodleの上で使用する際に発生する問題は意外と幅広く,あちこちにパッチをあてることで各人,対処しています.それらを取りまとめてパッケージの形にして配布しているのは,奥村先生の三重大学版,喜多先生のRPM版,私のfs_moodleの3系統です.こちらに報告されたパッチを一つ一つ探して手当てをしていくのも不可能ではありませんが,もし本格的に運用する予定ならば,上記3パッケージのいずれかの利用をお勧めします.

 なお,fs_moodleは日本語Windowsをサーバとする際に発生する問題への対策を中心としていますが,Linux上でも動きます(多分).
http://www.suzuka-ct.ac.jp/mech/moodle/course/view.php?id=30

 fs_moodleが対策したMoodleの問題箇所は以下の通り.
http://www.suzuka-ct.ac.jp/mech/moodle/mod/wiki/view.php?id=320&page=fs_moodle%E4%BF%AE%E6%AD%A3%E7%AE%87%E6%89%80%E4%B8%80%E8%A6%A7
私がこの半年ほどの間に集めた情報,自分で対策した箇所だけでもこれだけあります(日本語Windowsのためだけに施した対策が半分以上ですし,バグだけではなく,改善点も含めています).

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Shirai様

返信遅くなって申し訳ございません。ご指導いただき、ありがとうございます。

【問題1の件】

さて、問題1の件ですが、指摘していただいた通り、config.phpの修正を行いました。

すると以下のような結果になりました。

----------------------------------------------

「ファイルまたはウェブサイトにリンク」で追加でファイルをアップロード
■IE
1.日本語名ファイル「日本語(UTF-8).txt」アップロード
 中身はUTF-8で保存
 リンクをクリック、画面に正常に中身が表示されるが、URLが文字化け、以下のようになります。
 「http://xxxxxxx/moodle/file.php/5/譌・譛ャ隱枩UTF-8_.txt」

2.英字ファイル「file_up_test(UTF-8).txt」アップロード
 中身はUTF-8で保存
 リンクをクリック、画面に正常に中身が表示される。URLは文字化け無し。


■Firefox
1.日本語名ファイル「日本語(UTF-8).txt」アップロード
 中身はUTF-8で保存
 リンクをクリック、画面に正常に中身が表示されるが、URLが以下のようになります。
http://xxxxxxx/moodle/file.php/5/%E6%97%A5%E6%9C%AC%E8%AA%9E_UTF-8_.txt
2.英字ファイル「file_up_test_UTF-8.txt」アップロード
 リンクをクリック、画面に正常に中身が表示されるが、URLが以下のようになります。
http://xxxxxxx/moodle/file.php/5/file_up_test_UTF-8.txt

----------------------------------------------

過去のトピック「日本語ファイル名をIEでダウンロードするときの文字化け対策」

を読んだところ、Moodle1.8.3では解決されている的な事が書かれてる気がするのですが、何が問題でこのような事が起きるのかわかりません・・・

【レポートー>ログー>Excelフォーマットでダウンロードをするとおかしなファイルになる件】

私の環境でもExcel2003なのですが、修復機能が働いてくれないようです。

小テストの受験結果を「エクセルフォーマットでダウンロード」ができるように

したいのですが…。テキストだとダウンロードできます。

=======================================================================

現在、Shirai様に教えていただいたパッチを当てるべくテスト用の環境を構築中です。

fs_moodleを使用させていただこうかと考えております。また何か質問するかもしれないです。その時はお手数ですが、宜しくお願いします。。

パッチを当てれば、モロモロの問題が解決するかもしれませんね。(^ ^

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

追加です。

日本語ファイル名が「日本語ファイル名.txt」のように、日本語の文字しか含まれていない場合、画面自体開けません。

「申し訳ございません、ファイルが見つかりませんでした。」のエラー画面に遷移してしまいます。

ファイル名に半角英数字が含まれていると、画面を開くところまではいくようです・・

他の掲示板で紹介されていた

http://docs.moodle.org/ja/サイトファイル」の情報を参考に

モロモロの修正をしてみたのですが、やはり駄目でした・・・

 

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 オリジナルのMoodleでは,半角英数字とピリオド以外の半角文字はファイル名に使用できませんので,全て半角アンダーバーになってしまいます.これは仕様です.(fs_moodleではこの条件を外してあります).
 したがいまして,IEの場合の2(「file_up_test(UTF-8).txt」)も半角カッコはFirefox同様にアンダーバーになっていると思います.

 FirefoxでURLが%**のようにパーセント+2桁の16進数で表示されるのは正常です.UTF-8コードで送られたURLをFirefoxは自動認識してURLエンコード(%**)してURL欄に表示しています.IEはUTF-8コードのURLをうまく処理できないため,Moodle側からURLエンコードしたUTF-8でURLを送り出すか,シフトJISコード(日本語Windows上のIEのみの仕様)で送りだしてあげる必要があり,それが,

http://moodle.org/mod/forum/discuss.php?d=73794

こちらの2007年11月12日に私が書いたような改造です.抜粋します.



lib/filelib.php, send_file(): 347行近辺.最新のMoodle1.8.3+では,以下のようなコードが追加されています.

// if user is using IE, urlencode the filename so that multibyte file name will show up correctly on popup
if (check_browser_version('MSIE')) {
$filename = urlencode($filename);
}


この箇所を以下のように修正しました.

// if user is using IE, urlencode the filename so that multibyte file name will show up correctly on popup
if (check_browser_version('MSIE')) {
// $filename = urlencode($filename);
if (strlen(rawurlencode($filename)) > 21 * 3 * 3) {
$filename = mb_convert_encoding($filename, "SJIS-WIN", "UTF-8");
$filename = str_replace('#', '%23', $filename);
} else {
$filename = rawurlencode($filename);
}
} else if (check_browser_version('Safari')) {
$filename = "";
}

 


(上記ソースコードはFirefoxからフォーラムに書き込んだため,頭のインデント(半角空白4文字単位)が消えていますので,Copy&Pasteする際には自分で補ってください)

 といった修正を行うことで徐々にIEでも日本語ファイル名を使用できる場所が増えていくのですが,たとえばいまのこの修正だけでは日本語文字を含むフォルダに移動できなかったりするかも知れません.やはり思い切ってfs_moodleなどの日本語化されたMoodleの利用を勧めます.

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 問題3の(日本語文字を含む)Excelが正しくダウンロードできない問題は,

>小テストの受験結果を「エクセルフォーマットでダウンロード」ができるようにしたいのですが…

もしかしたら小テストやログといったプログラム自体に問題がある可能性もあります.Excel形式でのダウンロード全般に関わるコードのBugならば良いのですが...

 小テストは使用したことがありませんでしたのでfs_moodleでも未チェックです.取り敢えずテキストファイルでのダウンロードができるのが救いですね.時間のあるときに,fs_moodleの小テストへの対応を行いながら原因を探ってみます.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
Linuxサーバなら三重大版という手もありそうです。 笑顔
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 そうです,そうです.忘れていたわけではありませんウインク

 私は主にWikiと課題を中心にMoodleを使用していますので,その部分の日本語対応には自信があるのですが,私が使わない機能(小テストなど)はまったく手を入れていません.三重大版は全学的に運用されている実績,幅広い日本文化対応が行われている上に機能拡張も行われており,安定性も保証されていると思いますので,三重大版がお勧めです.

 fs_moodleは少しカルトな修正が行われています.そういった部分に興味がおありでしたら,修正箇所一覧をWikiでまとめてありますので,その部分だけ三重大版+αとして改良すると良いでしょう.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 Excelのダウンロードの件(問題3)で一つだけ確認です.

 いま,別件で管理メニュー内の設定を見ていて気付いたのですが,[管理]-[言語設定]の中に,Excelエンコーディングという項目が(Moodle1.8.3+の場合は)最後にあります.これがUnicodeになっているでしょうか? 多分,デフォルトでUnicodeだとは思うのですが,もしこれがLatinだとおかしくなる可能性があります.(試した訳ではありません)

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

>Shirai様

返信ありがとうございます。

[管理]-[言語設定]はUnicodeになっています。

ちなみに、以前の書き込みの

>lib/filelib.php, send_file(): 347行近辺.最新のMoodle1.8.3+では,以下のようなコ>ードが追加されています.

はfilelib.phpで宜しいでしょうか?該当の行が見当たらないのですが・・・

また、おっしゃる通り半角カッコは削除されますね。。

>Okumura様

奥村先生からメッセージがあってビックリしました!

(本を読んでたところなので・・)

現在、奥村先生の三重大学版とShirai様のfs_moodle両方の環境を

構築中です。

うまくいきますように・・祈もうろうとした目

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

>>lib/filelib.php, send_file(): 347行近辺.最新のMoodle1.8.3+では,以下のようなコ>ードが追加されています.

>はfilelib.phpで宜しいでしょうか?該当の行が見当たらないのですが・・・

Moodle1.8.3+のバージョンによっては,まだこのコードが追加されていないかも知れません.その場合は,以下のように丸ごと追加してOKです.

    //do not put '@' before the next header to detect incorrect moodle configurations,
    //error should be better than "weird" empty lines for admins/users
    //TODO: should we remove all those @ before the header()? Are all of the values supported on all servers?
    header('Last-Modified: '. gmdate('D, d M Y H:i:s', $lastmodified) .' GMT');

    // if user is using IE, urlencode the filename so that multibyte file name will show up correctly on popup
    if (check_browser_version('MSIE')) {
//      $filename = urlencode($filename);
        if (strlen(rawurlencode($filename)) > 21 * 3 * 3) {
            $filename = mb_convert_encoding($filename, "SJIS-WIN", "UTF-8");
            $filename = str_replace('#', '%23', $filename);
        } else {
            $filename = rawurlencode($filename);
        }
    } else if (check_browser_version('Safari')) {
        $filename = "";
    }

    if ($forcedownload) {

 ただし,fs_moodleや三重大学版のMoodleでは,上記コードが既に追加済みかも知れません.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

返信ありがとうございます。

三重大学版 Moodle1.8を構築しました。

結果、ログや成績表などのエクセルファイルの中身が見えなかったものが見えるようになりました。(ダウンロードするファイルに日本語が含まれてると、ファイル名は文字化けしてしまいますが)

ただ、アップロードしたファイルに日本語が含まれてると

アップロードは成功するのですが、IE6.0で開いてリンクで見ようとURLが文字化けし、エラーになります。

IE7なら文字化けしません。

ちなみに、三重大学1.6ではIE6でも正しく表示できました。

現在、filelib.phpの修正を行っているのですが、うまくいかず。。です。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

http://moodle.org/mod/forum/discuss.php?d=73794

の最後の書き込みに以下のような記述があります。

--------------------------------------------------------

file.php中の

$ua = $_SERVER['HTTP_USER_AGENT'];
if (strstr($ua, "MSIE") && !strstr($ua, 'Opera')) {
$filename = mb_convert_encoding($filename, "SJIS-WIN", "UTF-8");
$filename = str_replace('#', '%23', $filename);
} elseif (strstr($ua, "Safari")) {
$filename = "";
}

のようなIE対応のコードを削除します.これらをlib/filelib.php中にsend_file()に移動します.

--------------------------------------------------------

filelib.phpの上記の処理を削除すべきなのでしょうか?

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
申し訳ありません。三重大版はそういう修正をみな済ませてあるはずなのですが,1.8バージョンは本学でも十分にテストしておらず,細々とTeX Forumでテストしているだけですが,こちらはパワーユーザばかりなので日本語ファイル名が使われておらず,いろいろなブラウザでテストできていません(私はSafariとFirefoxばかりです)。冬休みになれば少しはコードを書く時間ができると思うのですが……。
山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 lib/filelib.phpに先に示したコードを追加したのであれば,file.php中の処理は不要です.

 file.php中の上記コードはブラウザがIEjの場合は$filenameをシフトJISに変換しなさい,という処理です.lib/filelib.phpに追加するように示したコードは,このコードをさらに拡張したものですので,両方が生きていると二重の文字コード変換がなされてしまい,$filenameが意味不明な文字コードになってしまい,その結果,クライアントPC側でダウンロードしたファイルに名前を付ける際に文字化けします.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 小テストの受験結果などをExcelでダウンロードしようとするとファイル名が文字化けする問題は,(例えば”概要”ならば)mod/quiz/report/overview/report.phpのclass quiz_report extends quiz_default_reportのメンバであるfunction display(),230行近辺(Moodle1.8.3+の場合),

        } else if ($download =='Excel') {
            require_once("$CFG->libdir/excellib.class.php");

//          $filename .= ".xls";
            $filename = mb_convert_encoding($filename .= ".xls", 'SJIS-WIN');
            // Creating a workbook
            $workbook = new MoodleExcelWorkbook("-");
            // Sending HTTP headers
            $workbook->send($filename);
            // Creating the first worksheet
            $sheettitle = get_string('reportoverview','quiz');
            $myxls =& $workbook->add_worksheet($sheettitle);

このように$filenameをシフトJISに変換してやれば大丈夫そうです.ファイルの中身はまた別問題です.それとも,$workbook->send()の中でファイル名の文字コードを変更するべき?

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 Excel形式でのダウンロードはまだまだ私にとっては謎の部分が多いのですが,

http://moodle.org/mod/forum/discuss.php?d=86252

こちらで何か情報がまとまるかも知れません.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

okumura様

三重大学版を使わせていただき、ありがとうございます。

色々抱えてた問題がほとんど解決しました。

残りは日本語ファイル名の文字化けのみですので、もう少し調べてみます。

Shirai様

度々返信ありがとうございます!

report.phpの修正をしてみたところ、文字化けが解消されました、が、

「CAFUKJBH.」(.xlsの拡張子なし)というファイル名でダウンロードされるようになりました。CAFUKJBH.の文字列がどこから来てるのかは謎ですが…。

アップロードの日本語ファイル名は指摘していただいた通りに修正したのですが、

なぜかまだ化けてしまいますね・・・

最悪、ファイルアップロードは日本語を使わないような運用にすると思います。

ただ、Moodle1.6では成功したので1.6と1.8のソースをdiff取って地道に探していくしか手がないのですが。。(T T

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 なぜ”「CAFUKJBH.」(.xlsの拡張子なし)というファイル名”になるのかは全く分からないのですが,以下の修正は分かりにくいかも知れません.

        } else if ($download =='Excel') {
            require_once("$CFG->libdir/excellib.class.php");

//          $filename .= ".xls";
            $filename = mb_convert_encoding($filename .= ".xls", 'SJIS-WIN');
            // Creating a workbook
            $workbook = new MoodleExcelWorkbook("-");
            // Sending HTTP headers
            $workbook->send($filename);
            // Creating the first worksheet
            $sheettitle = get_string('reportoverview','quiz');
            $myxls =& $workbook->add_worksheet($sheettitle);

以下の修正でも等価です.(ADD)の行を追加するだけです.こちらの方が読みやすかったですね.

        } else if ($download =='Excel') {
            require_once("$CFG->libdir/excellib.class.php");

            $filename .= ".xls";
            $filename = mb_convert_encoding($filename, 'SJIS-WIN');  // (ADD)
            // Creating a workbook
            $workbook = new MoodleExcelWorkbook("-");
            // Sending HTTP headers
            $workbook->send($filename);
            // Creating the first worksheet
            $sheettitle = get_string('reportoverview','quiz');
            $myxls =& $workbook->add_worksheet($sheettitle);

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
> 最悪、ファイルアップロードは日本語を使わないような運用にすると思います。

これは運用として無理っぽいです。われわれのサイトでも日々アップロードされる無数の教員のファイルや学生の課題提出などはほとんどが日本語ファイル名です。FTPなどでファイルをアップロードするのに比べて日本語ファイル名が使えるのが本学でのMoodleの売りの一つですので,もしうまくいっていないとすれば,確実に解決いたします(特に次年度からは1.8ベースを使う可能性が大きいので)。

山田様のところではいつから本格利用されるのでしょうか。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Shirai様

ご指導ありがとうございます。最新のほうの修正をプログラムに反映しました。

Okumura様

運用は今のところ1月末開始です。

なるほど、やはり日本語でアップロードが多いのですね。京都大学のMoodleでは、日本語禁止を謳ってました。運用でカバーしてるようです。

でも、もし1.8で使えるようになるのであれば、非常に有難いです。

(素人質問ですが、もし仮運用してて作成したコースやテストは、

新しく作った1.8完全バージョンにデータ移行できるものなのでしょうか?)

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
> (素人質問ですが、もし仮運用してて作成したコースやテストは、
> 新しく作った1.8完全バージョンにデータ移行できるものなのでしょうか?)

はい,それは問題ないはずです。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
横から失礼します.

この問題は悩んでいる管理者の方が多いと思うのですが皆様はどうやって日本語ファイル名へ対応させているのですか?
是非教えていただきたいです.

私の所でもMoodleを試験運用中なのですが,実感として,私もファイル名を半角英数字に限定するのは無理だと思います.
実際に試験利用してもらっている教員の方々からは「既に日本語ファイル名のPDF資料が1000個くらいあるので変更は無理」ですとか「学生にファイル名をローマ字で付けてとお願いしても,全角と半角の違いは判らない」といった意見があり,日本語ファイル名への対応は至上課題であると思います.

ただ,Moodleを日本語ファイル名に完全対応させるのはすごく大変ではないですか?

Moodleの日本語ファイル名対応の第一人者でもある奥村先生に言うのも,おこがましいかもしれませんが,私も実際にMoodleのコードを追いながら日本語ファイル名へ対応さています.しかし,ちょろちょろっと対応させただけでは,通らない場所があったり,通らない文字があったり,FirefoxではうまくいくけどIEではうまくいかなかったり,MacではうなくいくけどWindowsではうまくいかなかったり,また逆の状態もあったりしますので,完全対応を目指した結果,変更箇所が膨大にかつ分散してしまっています.

力業で対応はできますが,それが次のバージョンへの移行する際の足かせになっています.Moodleはバージョンアップによってどんどん魅力的な機能が増えていくのに,これは非常にもったいないと思います.
私は,現状ではパッチのような形にしてバージョン間の問題を回避していますが,元のファイルに一度に多くの変更が加わるような場合や,別の箇所の変更が影響する場合があり,結局対応が大変です.
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 IE6(IE7は大丈夫?)の日本語版でURLをURLエンコードしないで送る際にはUTF-8ではダメでシフトJISでないといけない,という問題を除けば,多くの国のMoodleユーザも同じ問題に直面しているはずです.どうなんでしょう???

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
そうですね.他のマルチバイト圏の対応も調べてみるべきですね.恥ずかしい
調べてみます.

関連して,白井先生のfs_moodleの様にマルチバイトに対応させた関数を用意して置き換えていくという解決策も良いかなと試しているのですが,関数を置き換える作業が必要なのがネックです.だったらと,元の関数をマルチバイト対応関数で上書きしてしまおうかとも考えていますが,これも互換性を考えると良い方法では無い様に感じます.悲しい
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
大変だけど,するっきゃないです。^^;

ぜひ早乙女先生のパッチもご披露ください。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
返信ありがとうございます.

日本語ファイル名対応は絶対に行わなければならないのは確かなのですが,
やはり力業でやるしかないのでしょうか...悲しい

奥村先生はMoodleに対する修正点をどのように管理されているのでしょうか?
私はPukiWikiとSubversion&Tracを駆使して,Moodleに対して変更した箇所を把握できるようにしています.
http://elc02.shinshu-u.ac.jp/

私のパッチも公開できるよう努力致します.
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿
遅ればせながらつい先日よりSubversionを使い始めましたが,Tracというのはまだ調べていませんでした.どうやらSubversionとの相性が非常に良いもののようですね.でも,これでMoodleのWikiを使わなくなるとMoodleのバグ出しの機会が減りそうですね複雑な

 Subversionは便利ですね.WindowsのクライアントTortoiseSVNは気持ち悪いくらいに使い易い.昔使っていたRCSとは比べ物にならない.もっとも,先ほどリポジトリエディタでtags内のフォルダを丸々消してしまってオタオタしていたところですが...

 先ほども,本家Moodleの更新箇所を自分のfs_moodleにマージしたところ,一瞬で終わってしまい,びっくりしました.いまのところ自分の修正と本家の修正が衝突していないからでしょうね.いやぁ,便利な世の中になっていたのですね.五月女さんのページのPHPのクロスリファレンスも見ました.他のサイトで同じことを行っているのをみて,これはデバッグの効率が上がるだろうなぁと感心していたところです.

 私のfs_moodleはWindowsPCにとって助かる修正,が中心です.それでもいくつか本家に訴えかけたい改良点もあります(バグは報告しています).そろそろJapaneseのコースで,まとめを始めませんか?

  • 日本語以外の外国語環境(=非英語圏)も影響のある問題点と改善法(本家に報告)
  • 日本語環境に固有の問題点と改善法
  • 日本語以外の外国語環境(=非英語圏)で役立つ改良点(本家に報告)
  • 日本語環境でのみ役立つ改良点

 問題点とはマルチバイトへの対応の甘さといったケアレスなバグや仕様の不十分さ,改良点とは姓と名の並び順といった”こうなっていた方が助かるなぁ”ですね.日本語環境に固有の問題点といえば,IEのダウンロード時に文字化けする問題が代表です.

 今回,山田さんの質問に答える際に,もう昔のことをすっかり忘れていることに気づきました.フォーラムに可能な限り足跡は残したつもりですが,それを時系列に追うのは難しい.バージョンの違いによる対処法の違いなどもあるでしょう.

 これらの日本語および日本語ファイル名/フォルダ名への対応をまとめたWikiをこのコース内に作れないでしょうか? 来年になったら私も自分が行った対策を逆引きできるWikiを作ろう(この問題に対しては,こことここをこのように対策)と考えていたのですが,皆さんで対策方法を出し合った方が良いコードになりそうです.各人が配布しているパッケージの方言が減るでしょうし,本家に取り込まれればパッチの手間も減ります.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
> これらの日本語および日本語ファイル名/フォルダ名への対応をまとめたWikiをこのコース内に作れないでしょうか?

白井先生

「日本語対応Wiki」のようなタイトルでよろしいでしょうか?
よろしければWikiタイトルのご希望をお知らせください。笑顔



Mitsuhiro Yoshida への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

「Moodleの多言語本格対応化Wiki」あたりで如何でしょう?

 でも,ここのWikiを使うと,キャメルオートリンクONでもOFFでもソースコードのアップロードに問題があるし,++等の装飾の問題や,スマイリーの影響もあるし,悩ましいですね.といってスタートしないといつまでも問題が先送りになりますので,現状でどのように回避するかを考えながらボチボチいきましょうか.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
五月女です.

これは,吉田さんに聞くべきかもしれませんが, http://docs.moodle.org/ja/ は使えないのですか?
中身はMediaWikiなので,ソースコード等の表示にも問題無いと思います.

#ただ,「ドキュメント」という定義からすると,議論を持ち込むべきではないのかもしれませんが
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
?これは,吉田さんに聞くべきかもしれませんが, http://docs.moodle.org/ja/ は使えないのですか?
>中身はMediaWikiなので,ソースコード等の表示にも問題無いと思います.

はい、http://docs.moodle.org/ja/ も使えますね。笑顔
管理者ドキュメント」内に「多言語本格対応化」等のページを追加できると思います。

「このコース内のWiki」「docs.moodle.org/ja」のどちらか使いやすい方をお使いください。

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
>「Moodleの多言語本格対応化Wiki」あたりで如何でしょう?

作成させていただきました。

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
五月女です.

Subversion便利ですよね.使い慣れると手放せないツールになります.笑顔
クロスリファレンスもとても便利です.これがないと開発する気になりません.
Tracはリポジトリブラウザ化してますが...(変更箇所の差分表示がとても便利です.)
修正点のまとめはもっぱらPukiWikiです.
Wikiって記法を覚えるとかなり便利なんですが,一度あるWikiの記法を覚えるとそのWikiから離れられなくなります.
#いっそPukiWikiをMoodleに移植したいくらいです.

私も日本語圏(というか日本の大学?)特有の問題をまとめるという意見に賛成です!賛成
このまま各人(各教育機関)が独自対応をしつづけるよりもより良い物ができるでしょうし,意見が集まれば流石に本家も対応してくれるでしょう.
それに,日本でのMoodle利用への敷居も下がると思います.
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
うちも三重大学版Moodleソースページに書いてあるように現在はSubversionで管理しています。1.6系統,1.8系統,それにElggも手を付けました。

どこかで日本のMoodleパッチが一元管理されればいいと思っています。

本家 → 日本語版 → 各大学版

のように階層的に差分があてられるようになれば便利です。

残念ながら日本の大学で学籍番号が必要だなどと言っても本家に対応してもらうのはほぼ不可能のようです。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
返信ありがとうございます.

> うちも三重大学版Moodleソースページに書いてあるように現在はSubversionで管理しています。1.6系統,1.8系統,それにElggも手を付けました。
三重大学版のリポジトリは拝見させていただいております.
運用上必要な改善・修正の情報を取得できるので助かっている管理者の方もたくさんいらっしゃると思います.(私もその一人です.)
しかし,Subversionだけで修正点を管理されているのですか?
それですと,個々の修正が何のために(どういった理由があって)行われたのか把握できなくなりませんか?

> どこかで日本のMoodleパッチが一元管理されればいいと思っています。
私も,日本語ファイル名,文字化け等に完全対応したパッチをまとめて作り,そこからは各大学等の教育機関が独自に作り込んでいく形が望ましいのではないかと思っています.
正に奥村先生がおっしゃる通り,本家に対して最初に適用するパッチがあると便利ですよね.

しかし,どういった形で配布するのが便利なんでしょう.複雑な



Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
やっと時間がとれるようになりましたので,三重大学版Moodleを見直しています。まずは1.8.3+の最新版をマージし,ファイル名やWikiをいじったところです。まだテストはちゃんとできていません。

fs_moodleとの差分もとってみたのですが,Windowsサーバを使う場合のパッチとLinuxサーバでも必要なパッチとの切り分けが面倒で,あまり進んでいません。Wiki関連ではかなり取り入れさせていただきました(ついでにewiki.phpをUTF-8に単純に変更してみました)。WikiでHTMLエディタを使うと「絵」という文字が化ける問題も直ったみたいです。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
http://oku.edu.mie-u.ac.jp/tex/
で三重大学版1.8.3+をテストしています。IE6での日本語ファイル名でのアップロード・ダウンロードもうまくいっているように見えます。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

山田です。昨年は大変お世話になりました。

バグ改修、ありがとうございます!!!!満面の笑顔

三重大学版1.8.3+のバグフィックス版はいつごろ、またどこのページから

DLできるようになりますでしょうか?

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
すでにいつもの方法でダウンロードできます。
Subversionですが,おわかりになりますでしょうか。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

山田です。

<http://portal.mie-u.ac.jp/src/>のmoodle08.tar.bz2 をダウンロードして

試してみました。

やはり、日本語名ファイルをUPしようとしても、

「申し訳ございません、ファイルが見つかりませんでした」になってしまいます。

また、前にUPされていた1.8.3で、可能だったことができなくなってしまいました…。

エクセルファイルの中身が文字化けしてしまいます。(受験結果の情報をエクセルフォーマットでダウンロードした結果です)

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
おかしいですね。
これをそのまま使ったサイトが
http://oku.edu.mie-u.ac.jp/tex/
です。申し訳ありませんが,ここに入って練習用フォーラムで試してみてくださいませんでしょうか。練習用のところならいくら散らかしてもかまいませんので。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
ついでに動作テスト用コースを作って山田さんを教師にしてしまいました。勝手にすみません。どうぞご自由に実験してください。

ところで

$CFG->unicodedb = true;
$CFG->unicodecleanfilename = true;

は設定されているでしょうか。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

ディスカッショントピックでテストさせていただきました。

無事、ファイル名に日本語を使用したものをUPできました。

自分の作ったサイトで、コース内の「ファイルまたはウェブサイトにリンク」でファイルをUPしようとした時に文字化けしてしまいます。

http://oku.edu.mie-u.ac.jp/texの動作テスト用で試させていただこうかと

思ったのですが、編集モードに切り替えることができなかったので、試せませんでした・・・。申し訳ございません。)

ちなみに、IE7.0だとtxtファイルなら無事文字化けせずに見れました。

エクセルをUPすると、ファイル名は微妙に文字化け、中身は完全に

文字化けしてしまいました。

「ディスカッショントピック」と「ファイルまたはウェブサイトにリンク」と使用されている

PHPのソースは同じなのでしょうか??

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

すいません!!管理メニューの中に編集モードの切り替えボタンがありましたね。

リソースの追加(ファイルまたはウェブサイトにリンク)でテストしてみました。

やはり「申し訳ございません。ファイルが見つかりませんでした。」のエラーになってしまいました。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
そうですか,フォーラムじゃなくてリソースでエラーになるのですね。
Excelのほうは大丈夫でしたか?

ついでに白井先生も教師権限にさせていただいちゃいました。すみません。何かの折に動作確認にお使いください。
山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
よく理解できていないのですが,ファイルまたはウェブサイトにリンクでもうまくできているようですし,山田さんのもちゃんと見えています。どのようになるのでしょうか。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

それでは、私の環境のせいかもしれませんね…。

私のPCでは添付ファイルのような画面になります。

OSはWIndows XP Professional SP2,IEは6.02です。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
あ,ごめんなさい。IE6の話でしたね。^^;

Windowsを起動してIE6でいまやってみました。確かに「見つかりません」になりますね。わかりました。直してみます。

FS版では大丈夫なんでしょうか>白井先生。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

すいません。テスト環境を作っていただき、しかも先生の権限まで

与えていただいて、、、ありがとうございます。

あと、以前の1.8.3では受験結果やログなどをエクセル形式でダウンロードした時に

文字化けせずちゃんと中身が見れたので、その修正も新しい1.8に入れて

いただくと有難いです。

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
とりあえず白井先生のFS版と似たrawurlencodeによって対処しました。これでIE6でも見つかりませんにならないはずです。

あと,Excelを扱う部分は1.8.3→1.8.4でいじっていないはずなのですが,1.8.4になってできなくなったでしょうか。私のところで再現できるでしょうか。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村先生、ありがとうございます!!!

無事IE6でも閲覧できました。ほげほげほげほげ等のリンク、見れました!(何故か「てすと」のリンクだけ化けてましたが)

Excelの中身文字化けは、1.8.4になってからできなくなりましたね。

(Excelのファイル名は1.8.4でも化けてました。)

Excelは、小テストを作って、学生がそのテストを受験してから、

管理者が小テストの受験結果のデータをダウンロードするところで見れます。

お手を煩わせては大変申し訳ないので、学生ユーザを作っていただければ

こちらで準備させていただきます。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
学生ユーザを作ろうと思ったら,すでに早乙女さんが学生として登録してくださっていました。どうもありがとうございます。m(__)m

Excelについては,あまり私自身使わないもので,すみません。おかしい個所を教えていただければ助かります。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

了解しました。

画面左の「管理」のメニューの中に、さっきまで「編集モード」への切り替えボタンが

あったと思うのですが、消えてしまって「評定」しか見れなくなってるようです。

お手数ですが、編集ができるようにしていただけますか?

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
編集モードへの切替のボタンは画面右側ではないでしょうか?
ご確認いただければ幸いです。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
五月女です.

現在の話題が逸れてしまうかもしれませんが,試しに三重大学Moodleのsvn版を使わせていただいるのですが,次の様な文字化けを見つけました.

*実験環境
RHEL4
Apache2.2.4
PHP5.2.3
MySQL5.1

WindowsからFrefox2を用いて文字化けを起こす文字列(参考:http://www.psl.ne.jp/perl/pdojo00c.html)をファイル名に含んだzipファイルをアップロードした場合です.
アップロードは正常行え,文字化けも発生せず,ファイルのダウンロードも正常に行うことができるのですが,Moodle上で展開した際に展開後の名前が文字化けを起こします.
またIE6を用いた場合は下記画像の様なエラーが発生し,展開すらできません.
これはPHPのZIP展開機能を利用した場合に発生しました.ZIPコマンドを用いた場合のテストも行ってみます.

また,IE6において日本語名のディレクトリ以下に配置してあるファイルをダウンロードすることができません.(Firefox2,IE7ではできました.)

添付 tenkai.png
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
早乙女さん,ありがとうございます。
ZIPファイルについては,そうですね,Windows上でZipしたアーカイブを単純に展開すると,中のファイル名がShift JISですので,おかしくなってしまいますね。ちょっと考えさせてください(パッチ歓迎します)。
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Yuichi Saotome の投稿
自己レスです.

RHEL4の/usr/bin/unzipを使ってみたところ,ファイル名がすべて文字化けしてしまいました.
探してみるといろいろ解決方法がありそうですので,試してみます
Yuichi Saotome への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 ファイル名に'\' (5C)が含まれると展開時におかしなことになる問題は,lib/pclzip/pclzip.lib.phpにあります.以下の2箇所です.

http://www.suzuka-ct.ac.jp/mech/moodle/mod/wiki/view.php?id=320&page=view/lib%2Fpclzip%2Fpclzip.lib.php

↑こちらに記録してありますが,まとめてないため,読みにくいですね.なお,fs_moodle用に書いた修正ですので,一般的なMoodle用に手で直しました.(2)の方はWindowsをサーバとする場合にのみ必要な修正ですので,以下の(1)の修正だけで大丈夫なはずです.

(1) privAddFileList() : 2450行近辺

// ----- Loop on the files
for ($j=0; ($j<sizeof($p_filedescr_list)) && ($v_result==1); $j++) {
// ----- Format the filename
// ここでパス中の'\'を'/'に置き換えるが,既に置き換え済み(のはず).
// マルチバイト文字列(PHPの内部文字コードと一致している保障なし)中の'\'を
// 強制的に書き換えるのでフォルダ名/ファイル名が化ける原因になる.
// したがって,以下2行(一文)は不要.
// $p_filedescr_list[$j]['filename']
// = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false);

//--(MAGIC-PclTrace)--//PclTraceFctMessage(FILE, LINE, 2, "Looking for file '".$p_filedescr_list[$j]['filename']."'");


 コメントにも書きましたように,既にパス区切りの置き換えはその前に行われているようでしたので,この処理は不要なはずです.


 いま調べ直してみたら,OSがWindows以外の場合は結局,PclZipUtilTranslateWinPath()は素通りするので実害は無さそうですね.となりますと別の問題でしょうか.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

徐々に思い出してきました.

http://www.suzuka-ct.ac.jp/mech/moodle/mod/wiki/view.php?id=320&page=view/lib%2Fmoodlelib.php%2Fzip%E9%96%A2%E9%80%A3

こちらの"(3) unzip_cleanfilename(): 6285行近辺"のところに書いてある内容が関係していそうです.

 function unzip_cleanfilename ($p_event, &$p_header) {
//This function is used as callback in unzip_file() function
//to clean illegal characters for given platform and to prevent directory traversal.
//Produces the same result as info-zip unzip.
// (FS_CONVERTER):ZIP/UNZIP/LISTZIPの際のヘッダー情報に含まれるファイル名をカレント文字セットに変換する
// (FS_CONVERTER):unzipする際に日本語ファイル名/フォルダ名中の'\'が'/'に変換されて文字化けする問題の対策
// (FS_CONVERTER):一旦,UTF-8に変換してから処理を行い,再びファイルシステムの文字コードに戻す.

$p_header['filename'] = zipitem2currentCharset($p_header['filename']); // (FS_CONVERTER)
$p_header['filename'] = ereg_replace(':cntrl:', , $p_header['filename']); //strip control chars first!
$p_header['filename'] = ereg_replace('\.\.+',
, $p_header['filename']); //directory traversal protection
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$p_header['filename'] = ereg_replace('[:*"?<>|]', '_', $p_header['filename']); //replace illegal chars
$p_header['filename'] = ereg_replace('^([a-zA-Z])_', '\1:', $p_header['filename']); //repair drive letter
} else {
//Add filtering for other systems here
// BSD: none (tested)
// Linux: ??
// MacosX: ??
}
$p_header['filename'] = cleardoubleslashes($p_header['filename']); //normalize the slashes/backslashes
$p_header['filename'] = convert2fsCharset($p_header['filename'], 'UTF-8'); // (FS_CONVERTER) (ADD)
return 1;

}

一つ目の赤い行が重要で,2つめの赤い行(convert2fsCharset())はOSのファイルシステムがUTF-8に対応している(Windows以外ですね)ならば不要なはずです.

なお,zipitem2currentCharset($p_header['filename'])は自作の関数で,fs_converter.phpに含まれている以下の関数です.

     function zipitem2currentCharset($str)
    {
        $encoding = mb_detect_encoding($str, 'auto');
        $str = mb_convert_encoding($str, 'UTF-8', $encoding);
        return $str;
    }

あら,fs_moodle固有の機能を取り除いたらシンプルな関数になってしまいましたね.では,これをそのまま組み込んで,以下のように.


function unzip_cleanfilename ($p_event, &$p_header) {
//This function is used as callback in unzip_file() function
//to clean illegal characters for given platform and to prevent directory traversal.
//Produces the same result as info-zip unzip.
    $p_header['filename'] = mb_convert_encoding($p_header['filename'], 'UTF-8', 'auto');  // (ADD)
    $p_header['filename'] = ereg_replace(':cntrl:', '', $p_header['filename']); //strip control chars first!
    $p_header['filename'] = ereg_replace('\.\.+', '', $p_header['filename']); //directory traversal protection
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        $p_header['filename'] = ereg_replace('[:*"?<>|]', '_', $p_header['filename']); //replace illegal chars
        $p_header['filename'] = ereg_replace('^([a-zA-Z])_', '\1:', $p_header['filename']); //repair drive letter
    } else {
        //Add filtering for other systems here
        // BSD: none (tested)
        // Linux: ??
        // MacosX: ??
    }
    $p_header['filename'] = cleardoubleslashes($p_header['filename']); //normalize the slashes/backslashes
    return 1;
}

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 昨日は学外の会議とそれに続く懇親会のため半日まるまる(珍しく)オフラインになっていたため出遅れましたウインク

 評定のダウンロードでファイル名が化ける(IE限定)のは,

grade/lib.phpのgrade_download()関数後半,ODS/Excel/テキストフォーマット形式で実際にファイル出力する箇所,たとえばExcelであれば,1370行近辺,

    } else if ($download == "xls" and confirm_sesskey()) {
        require_once("../lib/excellib.class.php");

    /// Calculate file name
//      $downloadfilename = clean_filename("$course->shortname $strgrades.xls");
          $downloadfilename = mb_convert_encoding(clean_filename("$course->shortname $strgrades.xls"),"SJIS-WIN")

 ここです.これは,ODSでもテキストファイルでも同じようにエンコーディングする方法で現在は対処しています.ブラウザの種別によってエンコードするかどうかを判別する関数を以前に作った気がするので,この手の箇所(沢山ありますよね...)をリストアップし,潰していきましょう(これは後日のお話).

 なお,シート名が化ける問題もあります.これはlib/pear/Spreadsheet/Excel/Writer.phpに修正を行うことで改善されます.私の場合(fs_moodle)はそのついでにファイル名の変換もWriter.php内で行うように修正しているため,オリジナルのままに戻してあります.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
私のところでは,コースのショートネームのほうは英数字で名付けられていると仮定して,

// $strgrades = get_string("grades");
$strgrades = "Grades"; // okumura

で対応してあったと思います。山田さんのところで文字化けしたとすれば,1.8.4+ になって文字化けしたのではなく,ひょっとしてたまたまコースのショートネームが全角になっていたということではないでしょうか。

どうしてこうしたかというと,ユーザがアップロードするファイル名はしかたがないにしてもMoodleで生成するファイル名が全角である必要はないと思ったのでした。MacとかLinuxとか使っているのでなるべく全角ファイル名は増やしたくなかったので。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 確かに.コースのショートネームに日本語を許すと日本語ファイル名(コースのバックアップのZIPファイル)が作成されますね.サーバOSが日本語Windowsの場合はこれも当然,文字化けしたファイル名になってしまい,トラブルの原因になりました...fs_moodleでもバックアップ作成に関して最初の段階で対応しましたが,古いバックアップファイルは削除されずに蓄積され続けるなど,後々まで尾を引きました.いまは多分,大丈夫なはずです.

// $strgrades = get_string("grades");
$strgrades = "Grades"; // okumura

私も同じ修正を以前は行っていました.Excelのシート名といっても,”評定”か”ログ”の2種類しか目にしたことがありませんでしたので...


なお,シート名はコースのショートネームではなく,”評定”(あるいはGrade)のはずなのです.したがって,↑のパッチが生きていればシート名は文字化けしないはずです.

 ダウンロードしたExcelファイルをバイナリエディタで見てみると,"04 00 8A 54 97 76"とシート名のデータが書き込まれています.04は4byteのデータであること,00はエンコードされていないデータ,そして4byteのデータが8A 54 97 76である,と.UTF-8では”詔靶”です.間違えて”評定”がUTF-8形式で(正しくはUTF-16LE)が紛れ込んでしまったのかな?と思ったのですが,違うようです.ちなみにこのファイルをExcel2003で開き,シート名をGradeに書き換えると,"05 00 47 72 64 64 65"となります.5文字,エンコードなし,G, r, a, d, e,です.何かがおかしいですねぇ.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様、白井様

度々お世話になります。笑顔

http://oku.edu.mie-u.ac.jp/tex/mod/quiz/report.php?q=1

の「動作テスト用」(ショートネーム:alt)で小テストをさきほど作成しました。

先生の権限を持つユーザーで入っていただき、「小テスト」->「受験結果」->「Excelフォーマットでダウンロードする」を押していただくと、添付ファイルのキャプチャようなファイル名になります。

どうやらファイル名は、ショートネーム_テスト名.xlsになるようです。

私が作っていた環境ではショートネームは日本語だったのでファイル先頭部が

化けていました。

奥村先生や白井先生のご意見を参考にすると、ショートネームは英数字で作成したほうが良さそうですね・・・・複雑な

さらに小テストの名前も英語で管理すれば、(「Lesson1」とか?)ダウンロードされたエクセルファイルも化けずに済むのかもしれません。

できれば日本語にしたいのですが・・・

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 ダウンロードされるExcelファイル(ブック)の名前と,ブックの中のワークシート名(時々私は省略してシート名と書いています)が話の流れの中で混ざっているようです.

 ワークシート名はExcelの画面下のタブ(Excelで新規作成したワークシートではSheet1)の名前で,これはオリジナルのMoodleならば小テストの評価シートの場合,"評定”あるいは"Grades"で固定です.コースのショートネームとは別です.

 ダウンロードしようとするExcelのブックの名前が化けるのは比較的対応が難しくない問題(失礼!)ですので,小テストの名前まで日本語の使用を制限することではないと思います.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
そうですね。私のところのサンプルコースの評定Excelファイルは文字化けについては問題なさそうに思えます。

一つ気がついたことは,少し前から姓と名が逆転してしまっていたこと。これはいろいろやっているうちに言語ファイルをMoodleが自動でダウンロードしてしまったためです。moodledataの言語ファイルを消したら元に戻りました(そのかわり五月女さんの姓と名が逆転しました ^^;)。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 ファイルの中身の文字化けは発生しませんが,ダウンロードするブックのファイル名は,IEですと(IE6/7共に)まだ化けます(サンプルのコース,山田さん作成の小テスト).

    } else if ($download == "xls" and confirm_sesskey()) {
        require_once("../lib/excellib.class.php");

    /// Calculate file name
//      $downloadfilename = clean_filename("$course->shortname $strgrades.xls");
          $downloadfilename = mb_convert_encoding(clean_filename("$course->shortname $strgrades.xls"),"SJIS-WIN");

こちらのパッチも当てて見て頂けないでしょうか.

#今日もこれから会議に行ってきますので返信は夜中までできません.ちょっとメタボリックが心配.赤面

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
ありがとうございます。このあたり,マルチプラットフォームを意識して,ファイル名をShift JISにするのをためらっていました。

結局,ファイル名は(コースのショートネームに全角が含まれない限り)英語だけになるように直してしまいました。シート名もみな英語にしてしまいました。これなら化ける心配がありません。^^;

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 確かにひとつの選択肢です.ダウンロードしてからファイル名を変えるのが当然であるといえば当然ですね.なまじ自動的にファイル名を作ってくれるのでそれに甘えてしまいがちですが.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Okumura様

お世話になります。山田です。

今までのやりとりの改修を入れた最新のソースはSubversionのところに

アップされてますでしょうか?

それとも

2008年1月16日版スナップショット:moodle08.tar.bz2 (Moodle 1.8.4+ ベース)

が最新ですか?

お手数ですが、教えていただけるとありがたいです。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
つねにSubversionが最新です。

もしSubversionに慣れておられないなら,言っていただければその時点でのスナップショットをtar.bz2形式でアップします。
山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
たった今の1.8系列スナップショットもアップしておきました(表示がまだ元のままかもしれません)。
Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

大変ありがとうございます。_(__)_ペコ

再インストールしてみます。

山田 花子 への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

ダウンロードさせていただき、無事稼動確認しました!満面の笑顔

日本語名ファイル使用 → OKウインク

エクセルファイルの中身の表示(アップロード、ダウンロード共に) → OKウインク

ありがとうございました。

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

奥村様

ディスカッショントピックでテストさせていただきました。

無事、ファイル名に日本語を使用したものをUPできました。

自分の作ったサイトで、コース内の「ファイルまたはウェブサイトにリンク」でファイルをUPしようとした時に文字化けしてしまいます。

http://oku.edu.mie-u.ac.jp/texの動作テスト用で試させていただこうかと

思ったのですが、編集モードに切り替えることができなかったので、試せませんでした・・・。申し訳ございません。)

ちなみに、IE7.0だとtxtファイルなら無事文字化けせずに見れました。

「ディスカッショントピック」と「ファイルまたはウェブサイトにリンク」と使用されている

PHPのソースは同じなのでしょうか??

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 fs_moodle中のWindowsPCをサーバとして使用するための変更箇所(// (FS_CONVERTER))と,それ以外の変更箇所(// (T.Shirai))というコメントの使い分けも途中から適当になってしまい,判読が非常に難しくなってしまった点は本当に申し訳ありません恥ずかしい

 なお,Moodleの多言語対応に必須の修正個所を調べている最中なのですが,実は(IE固有の問題を除けば)ごく数箇所なのではないでしょうか?

> WikiでHTMLエディタを使うと「絵」という文字が化ける問題も直ったみたいです。

 この問題ですが,当方のWikiでは化けないですねぇ.いま自宅なので調べようが無いのですが,後日,ewiki.phpの文字コードをチェックしてみます.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

> WikiでHTMLエディタを使うと「絵」という文字が化ける問題も直ったみたいです。

ewiki.phpの頭5,6,7行の3行分を以下にペーストしました.

  ErfurtWiki - an embedable, fast and user-friendly wiki engine
  ����������
  This is Public Domain (no license, no warranty); but feel free

当方の環境ですと,6行目のところには白抜きの四角形文字(豆腐?)が10文字並んで見えます(VLゴシックフォントの場合.MSゴシックですと中点(・)です.Firefoxですと菱形の中に疑問符の文字).この部分をバイナリエディタで調べてみると,EFBFBDが10文字分,連なっています...シフトJISコードには対応する文字がありませんが,UTF-8には割り当てがあるようです.ただ,文字が表示されない何か,特別な意味合いのある文字コードなのでしょうか?

 不完全な調査ではありますが,一応,オリジナルのewiki.phpもUTF-8で作成されているのではないでしょうか?

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Haruhiko Okumura の投稿
> オリジナルのewiki.phpもUTF-8で作成されているのではないでしょうか?

時間の関数みたいに思えます。最初はISO-8859-1でしたが12月29日にダウンロードした1.8.3+のものは完全に化けているように見えます。

うちのSubversionレポジトリに入れたものはUTF-8で次のように直しました:

ErfurtWiki - an embedable, fast and user-friendly wiki engine
¯¯¯¯¯¯¯¯¯¯

Haruhiko Okumura への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 状況を確認しました.これはかなり大きな問題のような気がします.

 元来,ISO-8859-1(Latin1,秀丸エディタでは”欧文”)でエンコードされていたソースファイルが,ISO-8859-1でもUTF-8でもない形式に変換されていますね(単に壊れている?).英数記号文字以外の欧文特有の記号(上付きの2なども)が化けていますね.

 添付した画像,上は2007年2月2日版のMoodle1.7.1に付属のewiki.php,下は2007年12月28日版のMoodle1.8.3+に付属のもの.function ewiki_page_css_container()関数の一部,638行あたりです.秀丸エディタで文字コードを”欧文”(多分,ISO-8859と解釈しているのだと思います)で開いた結果です.どちらもUTF-8で開くと該当箇所は化けます.少なくとも古いeWiki.phpはISO-8859-1ならば判読可能ですし,このファイルをUTF-8で保存すれば正しくUTF-8に変換できますが,最新のewiki.phpは化けたままですので救いようがありません.古いewiki.phpをUTF-8で保存し直し,自分で修正した箇所を適用し直す必要がありそうです.

 以前に,Wikiのページがときどき表示されない問題(キャッシュの問題)で,strtr()のパターンが当方の環境で読めなかった時,それとキャメルリンクケースを無効にする際に発生する問題の時にも,欧文文字が当方の環境では読めませんでした.その際に,ソースファイルの文字コードがUTF-8ではなく,Latin-1になっていることに気付くべきでした.

 現在の”壊れたLatin-1形式”のソースファイルは異常です.どのような処理を行った結果,こうなったのでしょう.また,これがeWikiのソースコードだけに発生している異常なのか.他のライブラリは大丈夫なのでしょうか.仕事は進まず,逆戻りしますね...Wikiのソースコードは,ほとんどメンテナンスが行われていないのが救いといえば救いです...

添付 Latin1UTF8error.jpg
Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- Tatsuya Shirai の投稿

 ewiki.phpファイルの文字コードの問題は予想以上に症状が重症ですので,議論を分割します.

続きは,

http://moodle.org/mod/forum/discuss.php?d=87632

へ書き込みます.

Tatsuya Shirai への返信

Re: ファイルのアップロード、ダウンロード時に文字化けします

- 山田 花子 の投稿

Shirai様

昨年は大変お世話になりました。

Wikiのほうでも様々な問題があるのですね…。

プログラム改修と調査、本当に助かります!