Excelの文字化けについて

Excelの文字化けについて

- Yuuki Murakami の投稿
返信数: 15

いつもこちらのフォーラムを拝見させていただいております。村上と申します。

以前からMoodleを使用してサイトを作成しており、「全般的日本語フォーラム 」で質問させていただいてMoodleを使っての小テスト集が完成しました。

小テストを学生に公開して、教師がチェックするという形を取ります。小テストの結果を教師はxlsファイルでエクスポートしたいのですが、「テキスト形式でダウンロードする」場合は日本語が表示されるのですが、「Excel形式でダウンロードする」で保存すると、日本語が文字化けしてしまいます。

こちらのフォーラムを拝見させていますが、Moodle1.45で上記の問題を解決することは可能でしょうか?

こちらのサイトでは質問してばかりで申し訳ありませんが、ご存知の方はご教授願いたいと思います。

以上、宜しくお願い致します。

Yuuki Murakami への返信

Re: Excelの文字化けについて

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

成績表、ログなどをダウンロードするときに、文字コードを指定できるようにカスタマイズしたものは、手元にあります。
富山大学の木原先生のリクエストで作りました。
それとほぼ同じカスタマイズをすれば、可能かと思います。
夏のインターンシップのテーマとして、予定しましょうか?
Minoru Akiyama への返信

Re: Excelの文字化けについて

- Yuuki Murakami の投稿

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

先程、メールにて別の方から対処方法を頂きました。

moodle/lib/excel/Worksheet.phpの1043行目付近に下記を追加することで日本語の文字化けは解決しました。

      $str = mb_convert_encoding($str, "SJIS", "auto");     

返答していただきましてありがとうございました。

上記の記述は私の環境ではうまくいきましたが、別の環境ではうまく行かないと思います。

(LinuxでOpenOffice.orgなどを使っている場合など)

Yuuki Murakami への返信

Re: Excelの文字化けについて

- Yusuke Kambara の投稿
追加で発言させてください

そのままだと恐らくタブの日本語が化けます
以下の様にソースを修正すれば直ると思われます


moodle/lib/excel/Workbook.php の362行目の
$this->_store_boundsheet($sheet_name,$this->worksheets[$i]->offset);
をコメントアウト

$sheet_name = mb_convert_encoding($this->worksheets[$i]->name, "SJIS");
$this->_store_boundsheet($sheet_name,$this->worksheets[$i]->offset);
を同じ場所に追記


以上です
Yusuke Kambara への返信

Re: Excelの文字化けについて

- Yuuki Murakami の投稿

神原様

情報ありがとうございました。さっそく編集させていただきます。情報をいただきまして本当にありがとうございます。感謝の気持ちでいっぱいです。

本当に個人の力では解決していないことばかりなので、うれしいの一言につきます。

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

Yusuke Kambara への返信

Re: Excelの文字化けについて

- 中川 嘉宏 の投稿
中川と申します。 debian に moodle-latest-16.tgz をインストールしました。
アンケート機能が必要になり、 Feedback モジュールを導入しました。 大変使いやすく大満足なのですが、集計を Excelに export するとき、 Worksheet はこのフォーラムで、教えていただいた方法で文字化けは修正されましたが、 Workbookの方を設定しますと、 Excelでオープンするときファイルが破損している、となってうまくいきません。
もし、対処の仕方をご存知でしたら、お教えいただければ幸いです。

中川 嘉宏 への返信

Re: Excelの文字化けについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
中川先生

FeedbackモジュールのExcelファイル破損の件です。
大変お手数ですが、このフォーラムを参考にして修正された部分を元に戻してください。

その後、この投稿に添付しました修正済みFeedbackモジュールのプログラムを、現在お使いのFeedbackモジュールのプログラムと入れ替えてください。

添付しました修正済みFeedbackモジュールのプログラムは下記のとおりです。
  1. analysis_to_excel.php
  2. easy_excel.php

Feedbackモジュールは大変使いやすい便利なアンケート用モジュールです。smile
日本語ファイルもすべて翻訳完了していますので、お試し頂けましたら幸いです。

Mitsuhiro Yoshida への返信

Re: Excelの文字化けについて

- 中川 嘉宏 の投稿
M. Yoshida 様
path_to_moodle/lib/excel/にある Workbook.php, Worksheet.php をオリジナルのものに戻し、いただいた feedback.zipのanalysis_to_excel.php, easy_excel.php でオリジナルの feedbackにあるものに上書きしたところ、 まったく問題 (文字化け、ファイル破損) なくアンケート集計を excel に export できました。
これから、ゼミ配属希望アンケートの本番に備えたいと思います。 迅速な応答、本当にありがとうございました。

Yuuki Murakami への返信

Re: Excelの文字化けについて

- Shin'ichi Tsumori の投稿
津森と申します。
初めて投稿しますが、宜しくお願い致します。

便乗させて頂きたいのですが、同じ問題をMoodle1.5.2で解決したいと思っています。
ソースを眺めてみたのですが、修正箇所が分かりません。

文字化けを回避する手段がありますでしょうか。
既に解決済の話であれば、ポインタだけでもご教示頂けると嬉しいです。
宜しくお願い致します。
Shin'ichi Tsumori への返信

Re: Excelの文字化けについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
文字化け対応したWorksheet.phpWorkbook.php ( 神原さんの修正部分 ) です。
Moodle1.5.2でご利用いただけます。

オリジナルのプログラムをバックアップした後、入れ替えてお試しください。wink


Mitsuhiro Yoshida への返信

Re: Excelの文字化けについて

- Shin'ichi Tsumori の投稿
Mitsuhiro Yoshida様
津森です。早速の返信を有難うございます。
結論から述べますと、お蔭様で成功しました!!

ただ、
$str = mb_convert_encoding($str, "SJIS", "auto");
だと"unable to detect character encoding"のエラーが出て文字化けが解消されないので、
$str = mb_convert_encoding($str, "SJIS", get_string("thischarset"));
とやったところ所望の動作をするようになりました。
こういう話は全く素人なので分からないのですが、ロケール(ja_JP.eucJPに設定しています)の問題でしょうか。

とにかく無事に動きまして、感謝しております。
有難うございました。
Shin'ichi Tsumori への返信

Re: Excelの文字化けについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
どういたしまして。

確かに、$str = mb_convert_encoding($str, "SJIS", get_string("thischarset")); の方がいいですね。

ロケールは、Excelの文字化けには関係しておりません。
日本語言語パックjaをお使いの場合は ja_JP.eucjp を、ja_utf8をお使いの場合は ja_JP.utf8 をロケールに指定されることをお勧めします。

今後、Moodleは文字コードUTF8へ移行して行きますので、日本語言語パックのja_utf8をお使い頂く方が宜しいかと思います。ja_utf8をお使い頂くことで、将来的なEUC-JP → UTF8へのデータ変換が不要となります。

Mitsuhiro Yoshida への返信

Re: Excelの文字化けについて

- Shin'ichi Tsumori の投稿
津森です。
ja_utf8の方は存在は知っているのですが、まだ試していません(昔からEUCなもので…恥ずかしい)。
今後UTF8へ移行とのことですから試してみたいと思います。
Shin'ichi Tsumori への返信

Re: Excelの文字化けについて

- Haruhiko Okumura の投稿

UTF-8への移行,うちではまだためらっています。まだまだ学生の自宅には古い環境がたくさんあるようですし。でも携帯にもUTF-8対応のフルブラウザが入るようになってきたくらいですので,来年度はうちもUTF-8にするかもしれません。一方,メールはまだUTF-8だと読めない人が大勢いるようで,当分はISO-2022-JPパッチが必要みたいです。

昨年TeX WikiをUTF-8にしたときは,読めなくなったという苦情がいくつか来ましたが,先週UTF-8なブログを立ち上げたときは,個人的なブログだからかもしれませんが,苦情はありませんでした。

Haruhiko Okumura への返信

Re: Excelの文字化けについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
はい。
メールは、ISO-2022-JPパッチを当てたほうがいいですね。
以前は、ブラウザで利用できるYahoo!メールでも、UTF-8でしたら文字化けしていたように記憶しています。