Ruby on Rails-Codificación:: UndefinedConversionError: "/ xC3" de ASCII-8BIT a UTF-8
encoding ruby (1)
Tengo un proceso que obtiene un archivo plano de un mainframe a través de FTP. Esto generalmente funciona bien para algunos archivos. En otros, obtengo: Encoding::UndefinedConversionError: "/xC3" from ASCII-8BIT to UTF-8
Eso es usando Net::FTP''s
método gettextfile
Net::FTP''s
. Aquí está mi código:
def find_file( position, value ) # => Value = CLKDRP03.txt, Forget the variable Position
ftp = Net::FTP.new(''IP'') # => status 200
ftp.login(''user'',''pass'') # => True
files = ftp.list(''*'' + value + ''*'') # => Obtain the file
if files[0] != nil
str_file = files[0].split(" ").last # => Obtain the name of the file. In this case CLKDRP03.txt
ftp.gettextfile(str_file,''data/input/'' + str_file) # => ERROR!, str_file = CLKDRP03.txt
# => data/input is the path where I put the files from FTP.
return str_file
else
return false
end
end
Si comento la línea de ftp.gettextfile
, el error sigue ftp.gettextfile
.
¡Gracias por adelantado! Lo siento por mi ingles.
Para cualquiera que venga aquí desde google, así es como arreglé mi error de codificación.
justo antes de declarar que abre su archivo, agregue este código
.force_encoding("UTF-8")
entonces, antes de declarar el archivo a una variable como esta:
csv_file = params[:file].read.force_encoding("UTF-8")
Espero que esto ayude a algunos ya que tuve este problema durante mucho tiempo, pero ahora funciona ¡yay!