[英]PHP shell_exec outputs question marks
我正在使用一個PHP腳本,該腳本通過shell_exec
調用外部程序,並且我對它的輸出感興趣。 問題是,當我使用俄語字母時,輸出總是以問號出現。
整個過程在Ubuntu 11.10上是runnnig,當以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);
}
通過添加LANG="en_US.UTF8"
解決,例如: 'LANG="en_US.UTF8" mono %sengine/helpers/language/morpher.exe %s';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.