[solved] escapeshellarg() schluckt Sonderzeichen

Bash, Shell, PHP, Python, Perl, CGI
EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

[solved] escapeshellarg() schluckt Sonderzeichen

Post by EdRoxter » 2008-09-19 12:48

Wie der Titel schon sagt: Ich habe auf 2 Debian Etch-Systemen mit Apache 2.2.3 und PHP5.2.6 von Dotdeb.org das Problem, dass die Funktion escapeshellarg() Umlaute und andere Sonderzeichen einfach vernichtet. Sieht dann so aus:

Code: Select all

<?
$var = "fäöüßf";
echo $var . "<br />";
echo escapeshellarg($var);
?>


ergibt als Ausgabe im Browser

Code: Select all

fäöüßf
ff


Was mich wundert, ist, dass es da nicht den Charset-Problem-typischen Zeichensalat gibt, sondern dass die Umlaute plain verschwinden.

Der Entwickler des Systems, für das ich die Server betreibe, meinte, dass in seiner Testumgebung genau das nicht passiert. Er arbeitet ebenfalls mit Etch und m.W. selber Konfiguration, allerdings mit php5 aus dem Debian-Repo.

Wir haben auch schon die locales abgeglichen. Diese sind auf allen zwei angehenden Produktivsystemen sowie seinem Testsystem exakt identisch konfiguriert.

Woran könnte das sonst noch liegen? Ich habe ein wenig php5 von Dotdeb in Verdacht, möchte das aber ungern runterschmeißen und daher erst noch rundum ausschließen, dass es an etwas Anderem liegt.

EDIT:
PHP 5.2.6 in Kombination mit locale ISO-8859-1 ist schuld: http://bugs.php.net/bug.php?id=44564