cry*_*tar 6 php python unicode exec
我有一个Python文件我用PHP的exec函数调用.然后Python输出一个字符串(显然是Unicode,基于使用isinstance),由PHP回应.我遇到的问题是,如果我的字符串中有任何特殊字符(如度数符号),则不会输出.我确定我需要做一些事情来摆弄编码,但我不确定该怎么做,为什么.
编辑:要了解我的通话方式exec,请参阅以下代码段:
$tables = shell_exec('/s/python-2.6.2/bin/python2.6 getWikitables.py '.$title);
Run Code Online (Sandbox Code Playgroud)
当我自己调用时,Python正确输出字符串getWikitables.py.
编辑:它似乎是在Python端或传输结果的东西.当我strlen在PHP中运行返回的值时,我得到0. exec只能接受某种类型的编码吗?
小智 11
尝试LANG在每个http://php.net/shell-exec#85095执行Python脚本之前立即设置环境变量:
shell_exec(sprintf(
'LANG=en_US.utf-8; /s/python-2.6.2/bin/python2.6 getWikitables.py %s',
escapeshellarg($title)
));
Run Code Online (Sandbox Code Playgroud)
(使用sprintf()to(希望)让它更容易跟随冗长的字符串)
shell_exec()根据http://php.net/shell-exec#78279,您可能还需要在调用之前执行此操作:
$locale = 'en_US.utf-8';
setlocale(LC_ALL, $locale);
putenv('LC_ALL='.$locale);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |