PHPのmb_encode_mimeheaderの文字化け対策


メルマガ配信のシステムを開発していて気がついたのですが、mb_encode_mimeheader()の結果がなぜか文字化けを起こします。

いろいろ調べてみた結果、今回は以下のような対処方法で解決。

internal_encodingの設定に要注目です。

function mime($str){
  $str = mb_convert_encoding($str, "ISO-2022-JP","UTF-8");
  ini_set('mbstring.internal_encoding', 'ISO-2022-JP');
  $str = mb_encode_mimeheader($str, "ISO-2022-JP");
  ini_set('mbstring.internal_encoding', 'UTF-8');
  return $str;
}

以上の関数を設置して、mb_encode_mimeheader()としている部分をmime()とすると文字化けが解消されます。


関連する記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>