当我的shell脚本从cron运行时,为什么非ASCII字符会被破坏?

时间:2012-05-14 14:04:35

标签: bash character-encoding cron

我有一个简单的shell script which synchronizes Google Calendars用于快速本地访问。当我从命令行运行它时,具有非ASCII字符的事件(如ä,ö,å)工作正常,生成的输出文件看起来很完美。

但是,当脚本从cron运行时,字符会在输出文件中被破坏。例如,Ä被替换为文字字符序列\xc4(即“Ärstidernas”变为“\ xc4rstidernas”)。该脚本正在OSX 10.6上运行。我不知道链中的哪个工具(cron,bash,python-2.6)导致这种情况发生。可能有什么不对?

2 个答案:

答案 0 :(得分:1)

在crontab的开头添加LC_CTYPE=sv_SE,也许?

答案 1 :(得分:0)

感谢@aztaroth,我对LC_CTYPE进行了一些研究,发现正确的解决方案是将其添加到脚本中:

export LC_CTYPE="UTF-8"

LC_CTYPE需要字符编码类型,而不是语言字符集。因此将其设置为UTF-8可以解决问题。