[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/ (個人)