我有这个代码:
# encoding: utf-8
require 'nokogiri'
s = "<a href='/path/to/file'>Café Verona</a>".encode('UTF-8')
puts "Original string: #{s}"
@doc = Nokogiri::HTML::DocumentFragment.parse(s)
links = @doc.css('a')
only_text = 'Café Verona'.encode('UTF-8')
puts "Replacement text: #{only_text}"
links.first.replace(only_text)
puts @doc.to_html
但是,输出是这样的:
Original string: <a href='/path/to/file'>Café Verona</a>
Replacement text: Café Verona
Café Verona
为什么文本@doc
最终以错误的编码结束?
我尝试了使用和不encode('UTF-8')
使用或使用Document
而不是DocumentFragment
,但这是同样的问题。
我正在使用 Nokogiri v1.5.6 和 Ruby 1.9.3p194。