考虑以下脚本:
#!/usr/bin/env python3
print("<h1>é</h1>")
我正在尝试从PHP运行它:
<?php
system("/usr/bin/python3 /my/script.py");
?>
它在shell上工作正常,但通过PHP崩溃:
UnicodeEncodeError:'ascii'编解码器无法在位置3编码字符'\ xe9':序数不在范围内(128)
如果我添加.encode('utf-8')
,PHP将输出字节编码的字符串。
b'\ xc3 \ xa9'
我该如何解决?将# -*- coding: utf-8 -*-
添加到python脚本中或在字符串前面加上u
无济于事,我认为utf-8应该仍然是python3的默认值吗?
答案 0 :(得分:0)
一种解决方法是显式设置PYTHONIOENCODING
:
<?php
system("PYTHONIOENCODING=utf-8 /usr/bin/python3 /my/script.py");
?>
[Credits.]