Unterschiedliche Ergebnisse mit at und cron

vop

Erfahrenes Mitglied
Hallo Leute

Ich stehe vor einem schwierigen Phänomen.

Zunächst zum Hintergrund
Per cronjob rufe ich regelmäßig ein selbstgeschriebenes Programm auf, welches aus vorgegebenen Daten XML-Dateien erzeugt. Die erzeugten Dateien sollen UTF-8 kodiert sein und enthalten unter anderem Umlaute.

Problem
Allerdings funktioniert scheinbar die Kodierung der XML-Datei nicht korrekt, wenn das Programm von cron gestartet wird. Anstatt eines UTF-8 kodierten Umlautes steht in der Datei jeweils nur ein '?'.

Phänomen
Starte ich das selbe Programm über at, wird die Datei korrekt erzeugt, mit entsprechend richtig kodierten Umlauten!?

1. Lösungsversuch
Ich habe den Pfad in der crontab entsprechend angepaßt. Keine Änderung.

Ausschnitt aus der crontab (markit_imp ist ein selbstgeschriebenes Kylix-Prog)
11 9 * * * markit_imp -toxml -dmarkit_sic -qwipo -hlocalhost DATEI LOGDATEI

at - Aufruf
analog halt ohne die crontab-Angaben zu Zeit etc.

Vielleicht hat ja irgend jemand eine Idee?

vop
 
Hi.

Kann es sein das die Kodierung der XML Datei von der Umgebung (locale) abhängig ist? Oder wie stellst du denn sicher, das die Ausgabe im UTF-8 Format geschieht?

Ansonsten, ruf einfach mal "locale" auf, dann siehst du ja welche Werte da gesetzt sind. Die solltest du per Hand irgendwie in das cron script eintragen. Z.B.

*/10 * * * * /usr/bin/env LANG=de_DE.UTF-8 markit_imp [...]
 
Hey Super!

Das scheint zu funktionieren. Cool! Danke!

Ich hoffe mal, das ich den Rest dann selber hin bekomme.
Dies war nämlich nur der einfache Test. Normalerweise wird eigentlich php mit einem Script aufgerufen, welches dann wiederum das Kylix-Programm startet.
Habe mal einfach die Environmentangabe vor den PHP-Aufruf geschrieben. Sollte dann ja ähnlich klappen.

Nochmals Danke
vop
 
Zurück