我正在使用一个调用外部程序的 PHP 脚本,shell_exec
我对它的输出很感兴趣。问题是当我使用俄语字母时,输出总是以问号形式出现。
整个过程在 Ubuntu 11.10 上运行,当外部程序在 bash 中执行时,它会产生正确的输出(没有问号)。
这是我的代码:
setlocale(LC_ALL, "en_US.UTF-8");
echo morpher("Антон");
function morpher($command) {
static $path = '/usr/bin/mono %sengine/helpers/language/morpher.exe %s';
$path = sprintf($path, SITE_ROOT, $command);
$output = shell_exec($path);
error_log($output) // series of question marks instead of russian letters
error_log( mb_detect_encoding($output) ); // outputs ASCII
error_log( iconv('ASCII', 'UTF-8', $output) ); // same question marks
return explode("\n", $output);
}