メールの設定をShift_JISにすれば、半額のティルド「~」がメールから排除されます。
最初はMoodleかMoodleが使っているTYPO3のバグだと思ったり、phpのiconvの問題だと思ったりして、結局はlibiconvの開発者BrunoにShift_JISとCP932の違いを教えてもらいました。
正式なShift_JISには半角なティルド(~)は存在しませんので、Shift_JISに変換すればティルドがなくなるのは当然ですが、世に出回っている「Shift_JIS」と呼ばれしものは実は、「CP932」別名「WINDOWS-932」別名「SJIS_WIN」です。SJIS_WINにはティルドがあります。
http://www.microsoft.com/globaldev/reference/dbcs/932.mspx
このフォーラムをもっとまめに読んでいただら、分かったはずです。
現在では、メールのエンコードとして、SJISはあってもCP932という選択肢はありません。バッグを投稿していますが、下記1,2,3のうちどれが望ましいと思われますか。
1)正式な(ティルドなし)のShift_JISTは必要でしょうか?必要なければ
moodlelib.phpに
function get_list_of_charsets() {
$charsets = array(
'EUC-JP' => 'EUC-JP',
'ISO-2022-JP'=> 'ISO-2022-JP',
'ISO-8859-1' => 'ISO-8859-1',
//Takemoto made Shift_JIS map to CP932
'SHIFT-JIS' => 'CP932',
'GB2312' => 'GB2312',
'GB18030' => 'GB18030',
'UTF-8' => 'UTF-8');
asort($charsets);
return $charsets;
}
2)SHIFT_JISに、SJIS_WINの選択肢を加えてもらえばよいか
3)SHIFT_JISTを排除し、SJIS_WINのみを残せばよいでしょうか?
オーバーバーを使うことがありますか。
ちなみに弊校では、"Shift_Jis"とEUC-JPしか表示しないメールクライエントを使っていますので、詳細設定でメールがShift_JISで送信されるように設定しています。しかし、そうしますと、ティルド(にょろ、~)が排除されます。小生のムードルのURLには(apache標準のユーザ名前)ティルドがありますので、我がMoodleからのメールの中にあるリンクが全て機能しませんでした!バーチャルサーバーで対応していましたが、サーバーの移動ではそれも一時期はなくなります。
ISO-2022-JPが何であるかは分かりませんが、おそらくSJISとは異なるものですね。
ISO-2022-JPから全角ティルド~がなくなっていることは別の問題のように思いますが、無知で。。。
SJISの問題に関して
1)Shift JISをCP932として捕らえる
2)Shift_JISプラスSJIS_Winを提供
3)SJIS_WINのみを提供
のうちはどれにそればよいと思われますか?
今からクライエントをテストしますが、きっとうSJIS_WINを使っています。だって、ティルドは重要ですもの。
ちなみに、Microsoftは「932 (Japanese Shift-JIS)」で、CP932とShift_JISが同じものだといっています。
ISO-2022-JPで文字が足りない場合は,UTF-8にします。
これ以外は日本では使われていません。
特にShift JISは御法度です。
ティルドの問題は,簡単に回避できます。
http://moodle.org/mod/forum/discuss.php?d=75226
ご法度であろうとも、弊校のメールクライアントはShift_JISを使っています。
http://moodle.org/mod/forum/discuss.php?d=75226
は全角ティルドについてと思います。全角ティルドを使っていません。
http://oku.edu.mie-u.ac.jp/~okumura/blog/
をうちのテスト用三重大版Moodle 1.9.1+に貼り付けてみましたが,ちゃんとリンクできました。ここのMoodleではどうなるでしょうか,試してみます。
当方の環境でも半角~をメッセージに含めて送信しても無事に届きますね.(ISO-2022-JP)
このMoodleですとどうでしょう.
あ,ちなみに当方のWebページのURLは,
http://www.suzuka-ct.ac.jp/mech/ai_mech/~shirai/
です.shiraiの前は半角チルダです.
> 思います。そんなことをしたらまわりからぶーぶー言われます。
最近テストしていませんが、キャンパス内のパソコンで使っているメールクライアント(ウェブではありません)は、EUC-JPとShift_JIS対応のみとあります。
http://aqua.math.sci.yamaguchi-u.ac.jp/~mai/maiyu0.html
しかし、ヘルプページでは
ヘッダーは MIME に対応しています。日本語を含むヘッダーは「charset = ISO-2022-JP, encoding = base64」でエンコードして、送信します。逆に言うと、ヘッダーを生 JIS で送ることは出来ません。
それはヘッダーだけがISO-2022-JPか。。。わかりません。テストしてみます。そうですね。ヘッダーがISO-2022-JPですがメールの本文がSJISのようです。UTF8は確実に文字化けします。
最新のメールを拝読しました。今からMaiYuからメールをお送りします。
武本
山口大学オリジナルのソフトを教職員・学生は御利用なのですね.(Macの人はどうするのだろう?)
MaiYUではなく,Maiのヘルプを読ませて頂きました.
サーバの文字コードはJISのみ,と(Maiでは)書いてありました.EUC-JP, シフトJISはダメと.MaiYUのページではEUC-JPにも対応したように書かれていましたので,拡張されたのでしょうか.
Moodleのメールの文字コードをISO-2022-JPに設定することで,山口大学のメールサーバ(IMAP4?)まではJISで正しく届いているとも考えられます.それをWindows用アプリケーションであるMaiYUで受け取る際に,JISからシフトJISに変換し,そこで半角チルダが欠落する可能性もありますね.
MaiYU以外のメールクライアントも試すことはできないでしょうか?
私は問題なくOutlook Expressを使っています。ただ、学生が大学内で使うコンピューターにはMaiYuしかインストールされていません。ウィルス対策です。
そこで自宅でインターネットがない学生は大学でメールを受信していると、UTF8では文字化け・Shift_JISではティルドがありません。
MaiYUが拡張されたのは、もしかしたら、私が昔MoodleでEUC-JPを使っていてお願いしたからかもわかりません。EUC-JPを使うことも考えられますね。それを考えていませんでした。しかし、どこかのソフト・環境でEUCJPが文字化けするとも聞いていたかと思います。
EUC-JPはCP932よりよいでしょうかな。moodlelib.phpの中の当該スクリプトが見つかりましたので、どのエンコードにでもできると思います。
> Outlook Expressを御利用の武本先生がMoodleから(山口大学のメールサーバを介して)メールを受信した場合も,半角チルダが消えてしまうのでしょうか?
はい。Shift_JISに設定すれば、そうです。
> 私の方から武本先生宛にメッセージを送りましょうか?)
奥村先生からいただきましたから、ご親切ですが、よろしいです。
(正式の)Shift_JISを選択すると、ティルドが存在しないので、ティルドがないのは山大の問題だけではなく、当然です。問題はShift_JISを選択したこの馬鹿です。
山大のMaiYU(メールクライアント)もISO-2022-JPに対応していることが分かりました。最初からそれを選択すればよかったです。
EUC-JPが選択できるのはありですが、(正式な)Shift_JISは不要で誤解を招くでしょう。Shit_JISの選択肢があってもSJIS_WINのCP932が望ましいと思いますが
では
1)現在(少なくとも1.6)のGUIにある「Shift_JIS」という選択肢をCP932に対応させるか(複雑だからいいえ)
2)「Shift_JIS」という選択肢に加えてCP932(「SJIS_WIN」)を加えるか(少なくとも正式のShift_JISは不要)
3)Shift_JISの代わりに「JSIS_WIN(CP932)」のみを提供すればよいか(はい、かな)
4)Shift_JIS(もSJIS_WIN(CP932))をGUIから排除すべきか(考えられる)
拙見は(括弧)にあります。
自身の問題はもう解決ですが、MoodleのGUIについては1~4、どれにすればよいでしょうか?
武本
実は私も,Moodleのインストール直後に,サイトのメールエンコードの設定をシフトJISに設定していて,学生からの指摘を受けて直しました.
今回の件を受けて,まず考えたのは選択肢からシフトJISを消してしまう(4)でした.しかし選択肢を狭めてしまうのは良くないとも考え,削除は止めました.そうですねぇ,MoodleのGUIに関して言えば(3)でしょうか.
しかし,私も含めて,初期の設定を誤る管理者は多いと予想されます.ドキュメントに ISO-2022ーJP推奨の文言を明記するのが好ましいでしょう(Moodle Docsの”多言語対応”に追加しておきます).日本語言語パックの”メール文字コード”を”メール文字コード(ISO-2022-JP推奨)”とするのも一つの手です.ちょっと長いですけれども.