无法在Apache→PHP→Python 3→中更改文件系统编码系统参数

2024-03-29 14:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

试图通过参数将一些非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");
    • 等等

Tags: py脚本demosysasciialllocale学校