php exec与特殊字符

时间:2011-03-28 09:41:54

标签: php encoding exec

在我的脚本中我通过PHPs exec函数运行find命令。

setlocale(LC_CTYPE, "de_CH.UTF-8");
$searchString = escapeshellarg("*$searchString*");
$searchDirectory = escapeshellarg($searchDirectory);
$result = array();
exec("find $searchDirectory -type f -iname $searchString", $result);

有些文件的名称中包含特殊字符(例如ä,ö,ü),我希望用户也可以搜索这些文件。当我像

那样对搜索进行硬编码时
exec("find $searchDirectory -type f -iname '*ä*'", $result);

我得到了预期的结果。但是一旦我使用用户输入它就不能按预期工作。我已经尝试避免将参数传递给escapeshellarg,因为我认为它可能存在UTF-8字符串问题,但结果是一样的。

有谁知道问题可能是什么?

0 个答案:

没有答案