Проблемы с запуском скрипта Ruby в качестве задания cron

Проблемы с запуском скрипта Ruby в качестве задания cron

У меня есть скрипт ruby, который я хочу запустить как cron job. Он отлично работает, когда я запускаю его через командную строку на машине linux. Но когда я запускаю тот же скрипт с помощью cron job, он терпит неудачу.

Я получаю следующую ошибку с кодировкой строки. Не уверен, почему он жалуется только когда я запускаю как задание cron. Я также установил оболочку /bin/bash в crontab, которая является той же оболочкой, что и моя командная строка.

Я получаю ошибку

в `encode': "\xE2" в US-ASCII (Encoding::InvalidByteSequenceError)

строка кода, вызывающая ошибку, это

split.encode('utf-8).split(some_str)

решение1

Сообщение об ошибке говорит вам, что вы установили в среде crontabUS-ASCII в качестве языка, и что в таком языке строка "\xE2" не существует. Скорее всего, это связано с тем, что строка имеет кодировку ASCII-8bit, а вам нужно преобразовать ее в UTF-8.

Вполне возможно, что строка была загрязнена каким-то невидимым символом, как это часто случается при копировании и вставке.

Применяется следующее:доМанипулирование строкой должно решить вашу проблему:

  new_str = some_str.encode('utf-8', 'binary', :invalid => :replace, :undef => :replace, :replace => '')

Связанный контент