root-cron und UTF-8

C

CrimsonKing

Guest
Da ich das Problem gerade habe (eins meiner selbstgebastelten Scripts funktioniert als "root" hervorragend, schmeißt mir als Cronjob aber UTF-8-Fehler vor die Füße, so dass ich zu wüsten Konstrukten wie export LC_ALL=en_US.UTF-8 && export LANG=en_US.UTF-8 && ./myscript im Cronjob gezwungen bin):

Ich vermute, es hat historische Gründe, dass cron kein UTF-8 nutzt. Das ist aber eine meines Erachtens nicht mehr zeitgemäße Einstellung. Kann irgendwas Schlimmes passieren, wenn ich das ändere, und wie geht das am unproblematischsten?
 
Warum machst Du das nicht im Skript? Wenn das auf eine locale angewiesen ist, sollte es die auch setzen.

`export LANG=en_US.UTF-8`

`LC_ALL` musst Du nicht setzen.

Wenn Du es weiterhin aus Cron machen willst dann mache es mit env:

`/usr/bin/env LANG=en_US.UTF-8 ./myscript `
 
Weil das Script kein Shellscript, sondern ein Lisp-Script ist. Da sollte die locale schon vorher existieren.

Dein Vorschlag ist jetzt eher ein Workaround, löst das Problem aber nicht. :(
 
Ich bleibe dabei. Wenn ein Programm auf eine locale angewiesen ist und die nicht setzt, dann ist das ein Bug in dem Programm.
 
C ist die Standardlocale die immer und überall unterstützt wird. C nicht zu unterstützen ist in der POSIX-Welt ein Bug.
 
Zurück
Oben