Problemas ao executar o script Ruby como cron job

Problemas ao executar o script Ruby como cron job

Eu tenho um script Ruby que desejo executar como cron job. Ele funciona perfeitamente quando executo o prompt de comando em uma máquina Linux. Mas quando executo o mesmo script usando um cron job, ele falha.

Recebo o seguinte erro com codificação de string. Não sei por que ele só reclama quando estou executando como um cron job. Também configurei meu shell para /bin/bash no crontab, que é o mesmo shell do meu prompt de comando.

O erro que recebo é

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

a linha de código que causa o erro é

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

Responder1

A mensagem de erro informa que você configurou, no crontabambiente, US-ASCII como seu idioma, e que nesse idioma a string "\xE2" não existe. Provavelmente, isso se deve ao fato de a string ser codificada em ASCII-8 bits, embora seja necessário convertê-la para UTF-8.

É possível que o barbante tenha sido contaminado por algum caractere invisível, como costuma acontecer quando você corta e cola.

O seguinte, a ser aplicadoantesmanipular a string, deve resolver seu problema:

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

informação relacionada