我正在尝试通过单击链接获取带有 ISO-8859-1 编码的页面,因此代码类似于:
page_result = page.link_with( :text => 'link_text' ).click
到目前为止,我得到的结果编码错误,所以我看到如下字符:
'T�tulo:' instead of 'Título:'
我尝试了几种方法,包括:
使用代理在第一个请求中声明编码,例如:
@page_search = @agent.get( :url => 'http://www.server.com', :headers => { 'Accept-Charset' => 'ISO-8859-1' } )
说明页面本身的编码
page_result.encoding = 'ISO-8859-1'
但我一定是做错了什么:一个简单的 put 总是显示错误的字符。
你知道如何说明编码吗?
提前致谢,
补充:可执行示例:
require 'rubygems'
require 'mechanize'
WWW::Mechanize::Util::CODE_DIC[:SJIS] = "ISO-8859-1"
@agent = WWW::Mechanize.new
@page = @agent.get(
:url => 'http://www.mcu.es/webISBN/tituloSimpleFilter.do?cache=init&layout=busquedaisbn&language=es',
:headers => { 'Accept-Charset' => 'utf-8' } )
puts @page.body