[PHP-users 8246] mbstring.http_input が有効にならない

Tsu.Mitarai php-users@php.gr.jp
Mon, 24 Jun 2002 15:02:32 +0900


アーマットの御手洗です。
いつもお世話になっています。

さて、今回新規に PHP4.2.1 をインストールし、SJIS のソースファイルから
内部エンコーディングを EUC として、SJIS で出力させたいのですが、
EUC に変換されないらしく、正しく動作しません。

<httpd.conf の設定>
php_value mbstring.http_input SJIS
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding EUC-JP
#php_value output_handler mb_output_handler

※ 最後の行がコメントなのは、生かすと文字が化けて読めなくなるためです。
   この行を生かし、ソースを EUC とすると、正しくSJIS で出力されます。

<コンパイルオプション>
'./configure' '--with-pgsql' '--enable-track-vars'
'--with-apxs=/usr/local/apache/bin/apxs' '--enable-versioning'
'--without-gd' '--enable-trans-sid'
'--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregx'

<サンプルプログラム>
<?php
 $test="日本語エンコーディングテスト";
 print "$test (" . mb_detect_encoding($test) . ")<br>";
 print ("mbstring.http_input=". mb_http_input() ."<br>");
 print ("mbstring.http_output=". mb_http_output() ."<br>");
 print ("mbstring.internal_encoding= ".mb_internal_encoding()."<br>");
?>

<その結果>
日本語エンコーディングテスト (SJIS)
mbstring.http_input=
mbstring.http_output=SJIS
mbstring.internal_encoding= EUC-JP

(※2行目は=の後に何も出力されません。)


タイプミスかとも思ったのですが、phpinfo() の表示では、
mbstring.http_input は確かに SJIS となっています。
原因など心当たりの方がいらっしゃいましたら、ご教示いただければ
幸いです。
よろしくお願いします。


\▼  御手洗 毅 Tsuyoshi Mitarai  mitarai@armat.com
<◆  株式会社アーマット
<◆  〒229-0032 相模原市矢部1-26-15 CASAアーマット
/▲  http://www.typetrek.co.jp/ (会社) http://mitarai.armat.com/ (個人)