Cri*_*ian 6 ruby encoding character-encoding nokogiri
我有这个代码:
# 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
Run Code Online (Sandbox Code Playgroud)
但是,输出是这样的:
Original string: <a href='/path/to/file'>Café Verona</a>
Replacement text: Café Verona
Café Verona
Run Code Online (Sandbox Code Playgroud)
为什么文本@doc
最终会出现错误的编码?
我尝试使用和不encode('UTF-8')
使用或使用Document
代替DocumentFragment
,但它是同样的问题.
我正在使用Nokogiri v1.5.6和Ruby 1.9.3p194.
似乎如果你传递一个nokogiri文本对象,它会做的事情;)
links.first.replace Nokogiri::XML::Text.new(only_text, @doc)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
815 次 |
最近记录: |