试图通过参数将一些非ASCII文本传递给Python脚本。你知道吗
演示.php
echo shell_exec("python3 demo.py 学校");
演示.py
import sys
print(sys.getfilesystemencoding())
print(sys.argv)
当我尝试在控制台(php demo.php
)中运行它时,它会给出正确的结果。你知道吗
UTF-8
['demo.py', '学校']
但当我尝试从浏览器运行它时,它会在每个非ASCII字节前插入一个\xdc
:
ascii
['demo.py', '\udce5\udcad\udca6\udce6\udca0\udca1']
如何使用PHP脚本强制文件系统编码?你知道吗
set_locale
设置
set_locale(LC_ALL, "C.UTF-8");
set_locale(LC_ALL, "en_US.UTF-8");
set_locale(LC_ALL, "en_US.utf8");
就我而言,这是个好办法
只需将以下两行添加到
/etc/apache2/envvars
Refer: Can't change Filesystem encoding in Apache → PHP → Python 3 → sys.argv
相关问题 更多 >
编程相关推荐