Moodle文書の文字化け

Moodle文書の文字化け

- Takayuki Kurosaki の投稿
返信数: 8

はじめまして。黒崎と申します。Moodleを使い始めて2日目です。笑顔 特定の環境にてMoodle文書(日本語版)が正しく表示されない現象を見つけましたのでお知らせいたします。

この現象は、ブラウザがOperaである場合に起きます。とはいえOperaのユーザーは少なく、多くの人は Internet Explorer をお使いでしょから、問題なくMoodle文書を読むことができると思います。 しかし、オープンソースに興味を持つ人々は、積極的に Internet Explorer 以外のブラウザ(MozillaやOperaなど)を選ぶ傾向にあると思いますので、修正したほうがMoodleの普及のためには良いと思い、ご報告申し上げました次第です。

原因は、HTTPヘッダの文字コード情報がeuc-jpでないことに起因します。 当方では、doc/index.phpに、以下の改造を施すことで対処しています。

 38行目に下記の4行を追加する。
    $accept = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    if (eregi("^ja",$accept)) {
        header ("Content-Type: text/html; charset=EUC-JP");
    }

これは「ブラウザが日本語をメインにしている場合、HTTPヘッダに文字コードがEUC-JPである情報を載せる」という意味です。

これは応急処置でしかありませんので、もっと良いコーディングがあるかもしれませんが、これでも日本のOperaユーザーのために役に立つかもしれないと思い、ここに発表させていただきます。

Takayuki Kurosaki への返信

Re: Moodle文書の文字化け

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
黒崎さん、Operaに関する文字化け対応方法を掲載して頂きまして誠にありがとうございます。

私の場合、常にMozilla Firefoxを使用していますので、Operaで文字化けが発生する現象に全く気付きませんでした。 赤面

下記のページでもOperaの文字化けが取り上げられていますね。
http://intnet.cc/hints.htm

将来的にMoodleは utf-8 (ユニコード) へ移行していくと思われますので、言語パックの ja_utf8 をお使いになられても宜しいかと思います。

今後とも文字化け等に関する情報をお願い致します。

Mitsuhiro Yoshida への返信

FireFoxがOKでOperaがNGの理由

- Takayuki Kurosaki の投稿
Yoshidaさんこんにちは。MozillaFireFoxとOperaの違いが分かりましたのでお知らせします。

実は、FireFoxでも、index.phpは文字化けしています。titleを見てください。「Moodle文書」のはずが「Moodleハクス・」となっていませんか?

そこまでは同じなのですが、その後が違います。Operaでは、文字化けのせいで「</title>」を認識できず( '<' が壊れるので)、そこでHTMLの解釈が止まってしまうのですが、FireFoxはHTMLの破損を捨て置き、後続するHTMLを解釈してくれます。そのおかげで、フレーム内のtop.php、contents.php、index.phpを表示できるのです。

ところで、私が最初に発表した方法より簡単な解決方法を思いつきました。「Moodle文書」の最後に半角スペースを1個入れて、「Moodle文書 」とするだけで、Operaでも表示できるようになります。これにより、Operaが</title>を認識してくれるようになるからです。(ただし、titleは相変わらず「Moodleハクス・」のままですが。)

自分はindex.phpに手を入れ、<?php print_string("documentation")?>の後ろに半角スペースを1個入れました。
Takayuki Kurosaki への返信

Re: FireFoxがOKでOperaがNGの理由

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
黒崎さん 情報ありがとうございます。 moodle/doc/index.phpを下記のように改造しても良さそうですね。

<head>
  <title>
  <?php print_string("documentation")?>
  </title>
  <meta http-equiv="content-type" content="text/html; charset=<?php print_string('thischarset') ?>" />
</head>

Takayuki Kurosaki への返信

Re: Moodle文書の文字化け

- Takahiro Kagoya の投稿

はじめまして。

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

大分前での話題ですが、関係しますでしょうか。Operaだと化けるというのは、どの日本語サイトでも...ということですか。それとも、自前のサーバに接続した場合ですか。

こちらでも、Operaをダウンロードして試してみましたが、moodle.orgと自分の大学のページでは、文字化けが起こりません。7.54u2 for Windows, Japaneseとかいうバージョンです。

もし情報などありましたら、よろしくお願いします。

それと、以前も話題に挙げた気がしますが、moodle.orgのトップページから、言語を指定せずにログインすると、ブラウザの文字エンコードがEUC-JPとならずに、いろんな部分が文字化けしてしまいます。、日本語を選択してログインし直まで直りません。Japaneseのコースにいる間は化けません。以前は、問題なかったはずですが。

Takahiro Kagoya への返信

Re: Moodle文書の文字化け

- Takayuki Kurosaki の投稿
こんにちは taka kago さん。情報ありがとうございます。

ご提示いただいたディスカッションで触れられている内容と似ています。ただ、症状はMoodle文書に限られます。トップページも文字化けせず、日本語を選択してログインしないと文字化けするという問題も発生しておりません。

テストしたMoodleは、moodle.orgと、さくらインターネットで借りたウェブスペースに自分で設置したものです。上記ディスカッションのような設定は一切せずに問題なく動いております。(.htaccessもphp.iniもデフォルトのままです)

当方のOperaは 7.54u1 for Windows, Japanese でしたので、7.54u2なら解決しているのかと思い、Operaをバージョンアップしてみたのですが、残念ながら解決できませんでした。

自宅と会社と両方でアクセスしてみたのですが、同じ症状です。メルコのルータを使っている以外は、プロキシやファイアウオールなどは一切使っておりません。

クライアントのOS:Windows XP Professional
クライアントのブラウザ:Opera 7.54u2 for Windows Japanese
サーバーのOS:FreeBSD 4.10-RELEASE-p5 i386
Apache:1.3.33
PHP:4.3.10
Moodle:1.4.3+ (2004083134)

環境は上記のとおりです。
Takayuki Kurosaki への返信

Re: Moodle文書の文字化け

- Takahiro Kagoya の投稿

「Moodle文書」ということの意味がhttp://moodle.org/doc/?lang=ja であることを、今理解しました。(単にMoodleのページという意味かと思っていました。)
確かに、OperaとFireFoxで試したところ、ご指摘の症状が出ました。

原因は、わかりませんが、エンコードを自動判別になっているのを、EUC-JPに手動で設定すると、問題なく表示されますね。ヘッダに以下のメタタグを入れる仕組みがないのが原因かもしれません。これはプログラム的に処理されているのか、単に吉田さんの方で1行追加できるのかはわかりませんが...

<meta http-equiv="content-type" content="text/html; charset=EUC-JP" />
Takahiro Kagoya への返信

Re: Moodle文書の文字化け

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
>これはプログラム的に処理されているのか、単に吉田さんの方で1行追加できるのかはわかりませんが...

プログラム的に処理されます。
Takayuki Kurosaki への返信

Re: Moodle文書の文字化け

- Takahiro Kagoya の投稿

さらに、わかったことですが、自分の大学のサーバ(Win2K+IIS+PHP5.02)へ、 https://xxx.ac.jp/moodle/doc とアクセスしてみました。
(/docフォルダがあることを今ままで知りませんでした。 それぞれのサイトにMoodle文書ってあるんですね笑顔
それで、Operaでも、FireFoxでも、問題なく表示されました。 ってことは、サーバ側の問題でしょうかね。

でもあれー、いろんな日本語サイト( http://moodle.org/sites 参照)で、/doc を表示させてみてたら、自動判別で問題なく表示されるところと、そうでないところがありそうです。