kullanarak metin ile bağlantı ararken "Geçersiz bayt sırası" nasıl engellenirim Rage 5 with Ruby 4.2 kullanıyorum ve Nokogiri ile ayrıştırdığım bir belgeyi tarayarak, metinle bağlantı için büyük/küçük harf duyarlı bir şekilde arıyorum:Nokogiri
a_elt = doc ? doc.xpath('//a').detect { |node| /link[[:space:]]+text/i === node.text } : nil
content
benim web sayfasının HTML aldıktan sonra, ben kullanarak bir Nokogiri doc ayrıştırmak:
doc = Nokogiri::HTML(content)
sorun şu ki, alıyorum
Yukarıdaki normal ifadeyi kullanırken belirli web sayfalarında 210.
2.4.0 :002 > doc.encoding
=> "UTF-8"
2.4.0 :003 > doc.xpath('//a').detect { |node| /individual[[:space:]]+results/i === node.text }
ArgumentError: invalid byte sequence in UTF-8
from (irb):3:in `==='
from (irb):3:in `block in irb_binding'
from /Users/davea/.rvm/gems/[email protected]/gems/nokogiri-1.7.0/lib/nokogiri/xml/node_set.rb:187:in `block in each'
from /Users/davea/.rvm/gems/[email protected]/gems/nokogiri-1.7.0/lib/nokogiri/xml/node_set.rb:186:in `upto'
from /Users/davea/.rvm/gems/[email protected]/gems/nokogiri-1.7.0/lib/nokogiri/xml/node_set.rb:186:in `each'
from (irb):3:in `detect'
from (irb):3
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console.rb:65:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/console_helper.rb:9:in `start'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:78:in `console'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
from /Users/davea/.rvm/gems/[email protected]/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
ben kodlama veya garip karakterler için hesap otomatik ve çıldırmak değil yukarıdaki yeniden yazabilirsiniz bir yolu var mı?
Lütfen "[mcve]" bölümünü okuyun. Kodla ilgili bir sorun sorulduğunda, sorunu gösteren minimum kodu ve minimum giriş verilerini görmemiz gerekir. İlk kod satırınız sorgulanabilir ve daha önce yazılan kodun açık bir şekilde yazılmadığını ima eder, ancak, tabiki görmeden orada size yardım edemeyiz. İnternette, doğru veya temiz bir şekilde üretilmeyen sayfalar bulmak çok yaygındır; genellikle Windows makinelerinde tuş takımı kullanılarak girilen karakterleri içeren ve ISO-8859-1 veya Win-1252 karakterleri metne enjekte edilen karakterler içerir. Ayrıştırmadan önce bunları dönüştürün. –