将latin1字符串转换为utf8?

时间:2009-10-07 10:06:00

标签: ruby nokogiri character-encoding open-uri

如何将包含latin1字符的字符串转换为utf8?

该字符串是一个文档,由open-uri打开,包含这些特殊字符。

祝你好运

2 个答案:

答案 0 :(得分:16)

Iconv

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

答案 1 :(得分:4)

根据你的标签判断,我想你想要这样的东西:

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'