Конвертировать строку latin1 в utf8? - PullRequest
9 голосов
/ 07 октября 2009

как я могу преобразовать строку, содержащую символы латинского алфавита в utf8?

Строка - это документ, который открывается open-uri и который содержит эти специальные символы.

С уважением

Ответы [ 2 ]

16 голосов
/ 07 октября 2009

Iconv

require 'iconv'
i = Iconv.new('UTF-8','LATIN1')
a_with_hat = i.iconv("\xc2")
4 голосов
/ 07 октября 2009

Судя по вашим тэгам, я думаю, вы хотите что-то вроде этого:

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)

Если вы не уверены, какую кодировку использует URI, вы можете использовать file.charset вместо кодировки 'latin'.

.
...