Problemas al ejecutar el script Ruby como trabajo cron

Problemas al ejecutar el script Ruby como trabajo cron

Tengo un script Ruby que quiero ejecutar como trabajo cron. Funciona perfectamente bien cuando lo ejecuto a través del símbolo del sistema en una máquina Linux. Pero cuando ejecuto ese mismo script usando un trabajo cron, falla.

Recibo el siguiente error con la codificación de cadenas. No estoy seguro de por qué solo se queja cuando lo ejecuto como un trabajo cron. También configuré mi shell en /bin/bash en crontab, que es el mismo shell que mi símbolo del sistema.

El error que recibo es

en `codificar': "\xE2" en US-ASCII (Codificación::InvalidByteSequenceError)

la línea de código que causa el error es

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

Respuesta1

El mensaje de error le indica que ha configurado, en el crontabentorno, US-ASCII como idioma y que en dicho idioma la cadena "\xE2" no existe. Lo más probable es que esto se deba al hecho de que la cadena está codificada en ASCII-8 bits, mientras que es necesario convertirla a UTF-8.

Es posible que la cadena esté contaminada por algún carácter invisible, como suele ocurrir cuando se hace un corta y pega.

Se aplicará lo siguienteantesmanipular la cadena, debería resolver su problema:

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

información relacionada