Python不同于comand line和php调用

Python不同于comand line和php调用,php,python,unicode,Php,Python,Unicode,我使用的是一个小的Python3.4脚本,当从comand line调用它时效果很好,但是当从PHP脚本调用它时会抛出一个异常。以下是运行python的php代码: $cmd = 'python3 ./realty_parser_frontend.py'; $outputfile = 'log'; $pidfile = 'pid'; exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfil

我使用的是一个小的Python3.4脚本,当从comand line调用它时效果很好,但是当从PHP脚本调用它时会抛出一个异常。以下是运行python的php代码:

$cmd = 'python3 ./realty_parser_frontend.py';
$outputfile = 'log';
$pidfile = 'pid';

exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
确切的错误是:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-12: ordinal not in range(128)

问题是,我在直接运行脚本时没有遇到错误,也不知道问题出在哪里…

与交互式shell相比,Web服务器环境可能具有不同的区域设置(
LC\u ALL
LANG
);哪种Python的编码行为是从中派生出来的。在PHP中编码扮演什么角色以及如何完成?非ascii字符试图由ascii编解码器编码似乎是一个错误……如果您只是打印sprintf创建的字符串,您会看到什么?是的,sprintf提供了python3./realty\u parser\u frontend.py>log2>&1&echo$!>>PidIt给出了与从php运行相同的结果-相同的错误Web服务器环境可能与交互式shell具有不同的语言环境设置(
LC_ALL
LANG
);哪种Python的编码行为是从中派生出来的。在PHP中编码扮演什么角色以及如何完成?非ascii字符试图由ascii编解码器编码似乎是一个错误……如果您只是打印sprintf创建的字符串,您会看到什么?是的,sprintf提供了python3./realty\u parser\u frontend.py>log2>&1&echo$!>>它给出了与从php运行相同的结果-相同的错误