[Q] Apache → PHP → shell_exec → Python 3 → sys.argv 的过程中出现的奇怪的编码问题。

2017 年 1 月 12 日
 blueset

用 PHP 的 shell_exec 调用 Python 脚本。

demo.php

echo shell_exec("python3 demo.py 学校");

demo.py

import sys
print(sys.argv)

在 SSH 终端里面运行的时候 (php demo.php)显示的是正常的内容。

['demo.py', '学校']

但是从浏览器里面访问的时候,每个字节前面直接给插入了一个 \xDC

['demo.py', '\udce5\udcad\udca6\udce6\udca0\udca1']

求解答。

尝试过各种 set_locale 设置均已失败。

联动 https://stackoverflow.com/questions/41594340/bad-unicode-encoding-in-apache-%E2%86%92-php-%E2%86%92-shell-exec-%E2%86%92-python-3-%E2%86%92-sys-argv

1275 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/334140

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX