わかりました、これが私のシナリオです。
私はfile.php
それが次のものを含んでいます:
<?php
$output = shell_exec("php output.php");
echo $output;
?>
そして、output.php
には次のものが含まれています。
<?php
echo "This is my output!";
?>
Webブラウザーから実行するとfile.php
、次の出力が得られます。
‹ ÉÈ,V¢ÜJ…üÒ’‚ÒEÿÿp³*š
ただし、php output.php
シェルから直接同じものを実行すると、正しい出力が得られます。
This is my output!
これがエンコードの問題の一種であることはよく知っていますが、一生の間、それを解決する方法を理解することはできません。を使用して言語を設定してみましたputenv('LANG=en_US.UTF-8');
。また、を使用して、を使用header('Content-Type: text/html; charset=UTF-8');
して出力されているエンコードタイプを判別しようとしましmb_detect_encoding($out, 'UTF-8', true);
た。結果なし。
exec()
同じ、不正な形式の出力を生成します。
誰かがこれに光を当てて、shell_execとファイルの出力の間で何が起こっているのかについての洞察を提供して、出力の形式を正しくすることができれば、本当にありがたいです。