Sie könnten zuerst eine weiße Liste erstellen, in dem Sie die Sonderzeichen definieren, die angezeigt werden sind ok. Legen Sie auch eine Zeichenfolge fest, mit der Sie die Zeichen ersetzen können.
Ersetzen Sie dann die Zeichen in Ihrem Befehl durch die Zeichenfolge. Entkomme deinem Befehl.
Schalten Sie die Sonderzeichen wieder ein, indem Sie die Zeichenfolge ersetzen.
So:
$allowedCharakters = array(
'µ' => 'microUThingie',
);
$specialchars='I would like to print a µ';
foreach ($allowedCharakters as $key => $value) {
$specialchars = str_replace($key, $value, $specialchars);
}
$escaped_specialchar=escapeshellcmd($specialchars);
foreach ($allowedCharakters as $key => $value) {
$escaped_specialchar = str_replace($value, $key, $specialchars);
}
brillant, danke – Heliosh