2004/11/27 土 22:36

WordPressには、コメントがつくとメールで通知してくれる機能がついてるんだけど、UTF-8にしたらそのメールが文字化けして届くようになったのね。

PHP4には mb_internal_encoding という内部文字エンコーディングを設定する呪文があるので、functions.phpに追加してみたよ。

追加したのは、functions.phpの1003行目。

if (function_exists('mb_send_mail')) {
  mb_language('Japanese');    ←追加
  mb_internal_encoding("UTF-8"); ←追加
  mb_send_mail($user->user_email, $subject, $notify_message, $message_headers);
} else {
  @mail($user->user_email, $subject, $notify_message, $message_headers);
}

これでいいのかどうかよく分んないれけど、文字化けは直ったよ。
他のメールを送る関数のところも追加した方がいいかも…。

[追記 04/12/01]
functions.phpで文字コードを指定するより、wp-config.phpに書く方が、お作法的に正しいらしい。
メール以外の文字バケにも効きそうだし。

場所はwp-config.phpの6行目辺り。
// It is influenced by environment.
mb_language("Japanese");    ←
mb_internal_encoding("UTF-8"); ←

コメントは受け付けていません。