エプソンダイレクト株式会社
Home > 2022年7月8日(金曜日)

2022年7月8日(金曜日)

PHP でメールのタイトルの文字化け対策

Category: ホームページ制作 | Posted By at 22:59:16

今日は夕方から予定が目白押し…のはずでしたが
一気になくなってしまいました。

で、昼間は何をしていたかというと、
PHP のプログラムから送った
メールの件名が文字化けする
というトラブルの対応です。

ただ手元のどの環境でやってもならない…。
ぬ~~~ん (´・ω・`)
ということで、担当の方の
ご協力を仰ぎながらつぶしていきます。

なにが怖いってせっかく動いてたものが、
下手にいじってよりおかしくなること…
実際タイトルだけでなく全部文字化けし、
思わず『コントか!』と突っ込んでしまいました。

で、今回の問題では以下の二点で解決

  • エンコード方式を ISO-2022-JP から UTF-8 に変更
    (昔は ISO-2022-JP でやるのが定番だったのですが…)
  • mb_encode_mimeheader は指定するとかえって化ける
    犯人はお前か~~~っ !!

PHP: mb_encode_mimeheader – Manual
https://www.php.net/manual/ja/function.mb-encode-mimeheader.php

PHP のマニュアルのコメント欄でも
散々バグあるで~と警告されてますね…。


mb_language( "uni" );
mb_internal_encoding( "utf-8" );
$subject = mb_convert_encoding( $subject, "utf-8", mb_detect_encoding( $subject ) );

というわけで今回はこれで解決させました。

HP Directplus -HP公式オンラインストア- デル株式会社 東芝ダイレクト 富士通パソコンFMVの直販サイト富士通 WEB MART ソフマップ・ドットコム