将 CRON 设置为用户时出现编码问题?

Encoding issue when setting up CRON as user?

我已经将 CRON 设置为 运行 当直接从终端 运行 时工作正常的代码,但当通过 CRON 运行 时会引发错误。

我已经通过

附加了 cron

env EDITOR=nano crontab -e

到运行一个Ruby代码就像来自标准终端用户一样。 该代码需要 ruby(包括 'watir' 和 'csv' 宝石)和 chromedriver.

58      10      *       *       *       PATH=$PATH:/usr/local/bin; /Users/sybren/chromedriver;  Ruby 'ruby/mycode.rb'

PATH 用于将(环境)设置更改为我的本地用户设置。 '/Users/sybren/chromedriver' 用于将 chromedriver 作为环境变量加载。最后它 运行 是我的 ruby 代码 ('Ruby 'ruby/mycode.rb'')

它引发了以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1987:in `=~': invalid byte sequence in US-ASCII (ArgumentError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1987:in `init_separators'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1509:in `initialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1261:in `new'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1261:in `open'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/csv.rb:1119:in `foreach'

我的 ruby 代码中没有“~”。同样,当来自终端的 运行 时,代码 运行 没问题。这里出了什么问题?我相信它在打开新的 csv 并遍历它时会出错。

在您打开 and/or 的代码中,读取文件内容,set the encoding 明确表示:

CSV.open(filename, encoding: Encoding::UTF-8.name) ...