将Latin1字符串转换为UTF8?

9

如何将包含Latin1字符的字符串转换为UTF8?

该字符串是通过open-uri打开的文档,其中包含这些特殊字符。

最好的问候

2个回答

16

Iconv

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

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'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接