ようこそゲストさん

CPA-LABテクニカル

2008/02/19(火) Semailで、どうもうまく文字コード変換をしない時の対処法

CakePHPの日本語高機能メールコンポーネントSemailでは、まず受け取った文字列の文字コードを自動判別して、ターゲットの文字コードにエンコードします。
使っているのは、 mb_detect_encoding関数です。
しかし、PHPの設定によっては、自動判別がうまくいかないことがあるかもしれません。
その時は以下の方法をとってみてください。

php.ini の修正

mbstring.detect_order = eucJP-win,UTF-8,SJIS-win,jis
とすると幸せになれるかも知れません。

php.initをいじれない方は、

mb_detect_order関数の使用

mb_detect_order("eucJP-win,UTF-8,SJIS-win,jis");
として、detectの順番を変えてみて下さい。

私は、上記の順番が一番誤りが少ないのですが、もっといい順番があれば、ぜひ教えて下さい。

名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/094/tb/
  • Semailバージョンアップ1.0.2.b(CakePHP日本語高機能メールコンポーネント) CPA-LABテクニカル spok
    CakePHP用高機能メールコンポーネントSemailのバージョンアップです。ご指摘のあった添付フィルの Content-Typeヘッダ(mimeタイプ)周辺を整備したほか、いくつかの改良をしています。基本的な使い方は、CakePHP用高機能メールコンポー...