[Tep-j-general] php4.4.0で日本語が化け

Back to archive index

Margy Mutoh margy****@roseb*****
2005年 8月 21日 (日) 15:49:32 JST


こんにちは。Margyです。いつもお世話様になっております。

さて、私はアメリカのレンタルサーバでosCを稼働させていますが、
そのサーバが先日、PHPのバージョンを 4.3.10 から 4.4.0 へ変更
しました。
おそらくこれを境に、ショップから送信されるメールのヘッダ内の
日本語部分が化けるようになってしまいました。

文字化けしているのは、tep_mailファンクションで呼ばれる
$to_name と $email_subject です。

-------------------------------------
$to_nameの例:
(※同じ記号の部分は化けていません)

●井 ▲美 → 8井 ▲美
■田 ◆美 → 20 ◆美
▼藤 ◎子 → f藤 ◎子


$email_subjectの例:

(checkout_process.phpから送信されたケース)
[OSC-RMxxxx]ご注文ありがとうございます
  ↓
[OSC-RMxxxx]T注文ありがとうございます

(contact_us.phpから送信されたケース)
ROSEBURG MARKET への問い合わせ
  ↓
ROSEBURG MARKET xnOD合わせ
-------------------------------------

うちは送信者名($from_email_name)がたまたま半角英字だけなので、
ショップが送信者の場合は化けませんが、受注メールや問い合わせ
メールなど、$from_email_nameに日本語名が入る場合に、文字に
よっては化けているようです。

これらの処理を含むファイルは、phpのバージョンアップ以前から
変更していませんので、phpのバージョン変更が原因ではないかと
疑っています。

サーバのプロフィールは下の通りです。
-------------------------------------
Apache version 	1.3.33 (Unix) 	
MySQL version 	4.0.25-standard 	
PHP version 	4.4.0 	
PERL version 	5.8.7 	
Operating system 	Linux 	
Kernel version 	2.4.21-32.0.1.ELsmp 	
-------------------------------------

現在のphpのmbstring関係の設定は、下の通りです。
-------------------------------------
Multibyte Support : enabled
Japanese support : enabled
Simplified chinese support : enabled
Traditional chinese support : enabled
Korean support : enabled
Russian support : enabled
Multibyte (japanese) regex support : enabled

mbstring extension makes use of "streamable kanji code filter and
converter", which is distributed under the GNU Lesser General Public
License version 2.1.

Directive                      Local Value  Master Value
--------------------------------------------------------
mbstring.detect_order          no value     no value
mbstring.encoding_translation  Off          Off
mbstring.func_overload         0            0
mbstring.http_input            pass         pass
mbstring.http_output           pass         pass
mbstring.internal_encoding     no value     no value
mbstring.language              neutral      neutral
mbstring.substitute_character  no value     no value
-------------------------------------

mbstring設定の中ほどに mbstring extension は streamable kanji
code filter and converter を使用するとありますから、これに
合わせて日本語処理を含むファイルの mbstringまわりを修正して
やらなければならないということでしょうか。

「streamable kanji code filter and converter」
http://www.darkshire.org/~jhkim/src/php-4.2.3/ext/mbstring/mbfilter.h

何かお気づきになる方おいででしたら、ご教授いただけませんでしょうか。
なお、情報の足りない部分がありましたらご指摘くださいませ。

よろしくお願いいたします。

Margy Mutoh





Tep-j-general メーリングリストの案内
Back to archive index