Problemas ao executar o script ruby como trabalho cron

0

Eu tenho um script ruby que eu quero executar como cron job.Ele funciona perfeitamente bem quando eu corro através do prompt de comando em uma máquina Linux. Mas quando executo o mesmo script usando uma tarefa cron, ele falha.

Recebo erro após a codificação de string. Não tenho certeza por que só reclama quando estou executando como um cron job. Eu também configurei meu shell para / bin / bash no crontab, que é o mesmo shell que o meu prompt de comando.

O erro que recebo é

in 'encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError)

a linha de código que causa o erro é

split.encode('utf-8).split(some_str)
    
por konquestor 19.09.2015 / 07:09

1 resposta

0

A mensagem de erro informa que você definiu, no ambiente crontab , US-ASCII como seu idioma, e que em tal idioma a cadeia "\ xE2" não existe. Provavelmente, isso se deve ao fato de que a string é codificada em ASCII-8bit, enquanto você precisa convertê-la em UTF-8.

É possível que a sequência tenha sido contaminada por algum caractere invisível, como geralmente ocorre quando você corta e cola.

O seguinte, a ser aplicado antes de manipular a string, deve resolver seu problema:

  new_str = some_str.encode('utf-8', 'binary', :invalid => :replace, :undef => :replace, :replace => '')
    
por 19.09.2015 / 09:38