如何转义外壳参数的特殊字符


How to escape special characters of a shell argument

我正在尝试通过 php 中的 system() 将字符串作为 shell 参数发送。

一切正常,直到我发送一个带有特殊字符的字符串,特别是这个"Œ"。所以,当我发送这个字符串"ŒDucks"时,shell只收到"鸭子"

尝试过转义它,添加"/"、"''"、简单的引号,但没关系,我得到相同的结果

这是我的代码:

system('/usr/bin/perl /var/prof/info.pl'.' '.EscapeShellArg("ŒDucks") > /dev/null &');

感谢您抽出宝贵时间:)

尝试:setlocale(LC_CTYPE, "en_US.UTF-8");或任何奇怪:)的区域设置是从。