Python不同于comand line和php调用
我使用的是一个小的Python3.4脚本,当从comand line调用它时效果很好,但是当从PHP脚本调用它时会抛出一个异常。以下是运行python的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
$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运行相同的结果-相同的错误