[PHP-users 14049] exec関数の出力結果の最後の文字が化ける
Kiyoshi Sawada
php-users@php.gr.jp
Mon, 17 Mar 2003 21:38:20 +0900
こんばんは、沢田です。
以下のSolaris環境、テストプログラムで、SJISファイルを出力する
exec関数の出力結果の最後の文字が化けます。
ボケていて、設定がおかしいかもしれませんので、ご教授ねがいます。
exec.cのソースはまだ見ていませんが、ひょっとしてSolarisによくある、
unsigned char 関連の不具合かもしれません。
とりあえずの対処は、下記(4)のように qkcでフィルタリングしています。
よろしくお願いいたします。
☆環境
SunOS 5.8 Generic_108528-16 sun4u
PHP Version 4.3.1 Apache/1.3.27
./configure
--with-apxs=/usr/local/apache/bin/apxs \
--enable-zend-multibyte \
--enable-mbstr-enc-trans \
--enable-mbstring \
--with-pear \
--enable-memory-limit
magic_quotes_gpc Off
safe_mode Off
mbstring
Multibyte Support enabled
Japanese support enabled
mbstring.detect_order auto
mbstring.encoding_translation On
mbstring.func_overload 0
mbstring.http_input auto
mbstring.http_output EUC-JP
mbstring.internal_encoding EUC-JP
mbstring.language Japanese
mbstring.script_encoding EUC-JP
mbstring.substitute_character auto
☆SJISファイル a.txt
-------------------------
美乳美 乳美[eof]
-------------------------
以下、テストプログラムと出力結果です。
--------------------------------------------------------
<html><head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
</head><PRE>
<?php
$fp = fopen("./a.txt" , "r") ;
$a = fgets($fp) ;
$a = mb_convert_encoding($a, "EUC-JP", "auto") ;
echo "(1): $a<BR>" ; // 出力結果 正常
// (1): 美乳美 乳美
fclose($fp) ;
$com = "cat a.txt" ;
$str = exec( $com , $ret ,$sts ) ;
$str = mb_convert_encoding($str, "EUC-JP", "auto");
echo "(2): $str <BR>" ; // 出力結果 最後の美が化ける
// (2): 美乳美 乳
$com = "LANG=ja_JP.PCK;export LANG;cat a.txt" ;
$str = exec( $com , $ret ,$sts ) ;
$str = mb_convert_encoding($str, "EUC-JP", "auto");
echo "(3): $str <BR>" ; // 出力結果 最後の美が化ける
// (3): 美乳美 乳
$com = "cat a.txt | qkc -I -O -is -e" ;
$str = exec( $com ,$ret , $sts ) ;
echo "(4): $str <BR>" ; // 出力結果 正常
// (4): 美乳美 乳美
$str = `cat a.txt` ;
$str = mb_convert_encoding($str, "EUC-JP", "auto");
echo "(5): $str <BR>" ; // 出力結果 正常
// (5): 美乳美 乳美
?>
</PRE>
</body></html>
--------------------------------------------------------
--
沢田 潔 <sawa@nagoya2.jrc.or.jp>