2009-10-07 58 views
9

¿cómo puedo convertir una cadena que contiene caracteres latin1 en utf8?¿Convertir cadena latin1 a utf8?

La cadena es un documento, que se abre con open-uri y que contiene estos caracteres especiales.

Saludos

Respuesta

16

Iconv

require 'iconv' 
i = Iconv.new('UTF-8','LATIN1') 
a_with_hat = i.iconv("\xc2") 
4

A juzgar por sus etiquetas, supongo que quieres algo como esto:

require 'rubygems' 
require 'open-uri' 
require 'nokogiri' 
require 'iconv' 

file = open(your_uri) 
doc = Nokogiri::HTML(Iconv.conv('utf-8', 'latin1', file.readlines.join("\n"))) 
doc.xpath(your_xpath) 

Si no está seguro de lo charset los usos uri, puede usar file.charset para obtener el juego de caracteres en lugar de 'latin'.