从 php 脚本中,我想启动一个 python3 脚本,其工作是读取文件。
-
php代码看起来像这样:
$command = "python3 ./toto.py" ; $r = shell_exec($command);
-
python3脚本,
toto.py
看起来像这样:myfile = open('/tmp/file_to_play.txt', 'r') print(myfile.readline())
-
要读取的文本文件是 UTF-8 编码文件(请注意它包含一个"é"):
déclin_abeilles.mkv
当我直接从 shell 启动 python3 脚本时,它可以正常工作。但是,当它通过php脚本执行时,当我读取文本文件时,我得到一个编码系统错误:
Traceback (most recent call last):
File "./toto.py", line 8, in <module>
print(myfile.readline())
File "/usr/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 32: ordinal not in range(128)
谁能解释我错过了什么?
注意:一切都在具有"Raspbian GNU/Linux 8(jessie)"和默认软件包的Raspberry 3服务器上运行
注2:php代码包含header('Content-type: text/html; charset=UTF-8');
据我所知,一些特殊字符可能会弄乱程序。尝试将"é"替换为"e"。看看是否有帮助