2022年7月8日(金曜日)
PHP でメールのタイトルの文字化け対策
Category: ホームページ制作 | Posted By ackie 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 ) );
というわけで今回はこれで解決させました。
トラックバック URL
コメント&トラックバック
コメントフィード
コメント