le travail de cron envoie des courriels dans un mauvais jeu de caractères

J'ai une command suivante dans un cronjob:

*/5 * * * * php /var/www/domain/yii rss/parse 

Il produit des courriels dans un mauvais jeu de caractères:

 Content-Type: text/plain; charset=ANSI_X3.4-1968 

Mais lorsque je lance cette command directement dans CLI et que je la lance dans un journal:

 php /var/www/domain/yii rss/parse > log 

Je reçois le bon encoding – UTF-8

Déjà essayé de définir lang dans / etc / environment:

 LANG=en_US.UTF-8 

Redonné le cron, mais il utilise encore ANSI via CRON. Des idées?

3 Solutions collect form web for “le travail de cron envoie des courriels dans un mauvais jeu de caractères”

J'ai résolu mon problème en ajoutant à un crontab:

 crontab -e 

Au début du file, j'ai écrit:

 CONTENT_TYPE="text/plain; charset=utf-8" 

Maintenant, tous mes e-mails de travail de cron sont dans UTF-8 Charset.

J'ai dû résoudre ce problème globalement pour tous les users et pas précis. J'ai essayé de configurer / etc / environment et / etc / default / locale puis redémarrer cron. Cela n'a pas aidé. La bonne réponse pour moi utilisait la command env dans le script upstart (j'utilise le server ubuntu):

env LC_ALL = en_US.UTF-8

 cat /etc/init/cron.conf # cron - regular background program processing daemon # # cron is a standard UNIX program that runs user-specified programs at # periodic scheduled times description "regular background program processing daemon" start on runlevel [2345] stop on runlevel [!2345] expect fork respawn env LC_ALL=en_US.UTF-8 exec cron 

Ensuite, j'ai redémarré cron et j'ai reçu un courrier correct dans utf-8.

Lorsque vous commandz CLI, vous avez obtenu le chatset utf-8, je pense, parce que vous utilisez un PC MAC OS ou un PC Linux

Je l'ai dit parce que le LANG actuel de votre PC commence à être copié dans votre session ssh

 grep -i LANG /etc/ssh/sshd_config AcceptEnv LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 

de man sshd_config

 AcceptEnv Specifies what environment variables sent by the client will be copyd into the session's environ(7). See SendEnv in ssh_config(5) for how to configure the client. Note that environment passing is only supported for protocol 2. Variables are specified by name, which may contain the wildcard characters '*' and '?'. Multiple environment variables may be separated by whitespace or spread across multiple AcceptEnv directives. Be warned that some environment variables could be used to bypass ressortingcted user environments. For this reason, care should be taken in the use of this directive. The default is not to accept any environment variables. 

Votre process de crond utilise charset = ANSI_X3.4-1968, peut-être que c'est le système par défaut LANG, mais si vous voulez changer cela

  man 5 crontab 
  • AWS supprime la key publique / privée
  • Exécuter NFS avec iptables, changer le pare-feu?
  • Le nettoyage du file de session PHP5 ne se termine jamais
  • Erreur lors du montage d'une partition avec Live CD
  • Didacticiel de Sysadmin pour Debian / Ubuntu pour Windows Expert / Lunix Noob?
  • Hyper-V: Surveillez et redémarrez les invités hyper-v qui ne répondent pas
  • Les scripts up NetworkManager exécutent deux fois
  • Ubuntu upstart se bloque sur le démarrage et l'arrêt interactifs
  • VirtualBox, disques physiques et instantanés
  • Le redémarrage est-il nécessaire après l'expansion d'un disque / partition?
  • Les problèmes de pare-feu PPTP VPN iptables csf
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.