Aşağıdaki kod var, bu da bana initialize
'da tarama yöntemini işaret eden geçersiz bir bayt dizisi hatası veriyor. Bunu nasıl düzelteceğinizle ilgili bir fikrin var mı? Bu değer, h1 etiketi ve >
kapanışı arasında (.*)
olmadığı zaman hata oluşmaz.Ruby UTF-8'de Geçersiz Bayt Sırası
#!/usr/bin/env ruby
class NewsParser
def initialize
Dir.glob("./**/index.htm") do |file|
@file = IO.read file
parsed = @file.scan(/<h1(.*)>(.*?)<\/h1>(.*)<!-- InstanceEndEditable -->/im)
self.write(parsed)
end
end
def write output
@contents = output
open('output.txt', 'a') do |f|
f << @contents[0][0]+"\n\n"[email protected][0][1]+"\n\n\n\n"
end
end
end
p = NewsParser.new
Düzenleme: ÇÖZÜLDÜ
news_parser.rb:10:in 'scan': invalid byte sequence in UTF-8 (ArgumentError)
: kullanarak kombinasyonu: @file = IO.read(file).force_encoding("ISO-8859-1").encode("utf-8", replace: nil)
ve encoding: UTF-8
sorunu çözmek İşte hata mesajıdır.
Teşekkürler!
try '@file = IO.read (dosya) .encode (" utf-8 ", yerine: nil)' – fl00r
Hayır, aynı hata iletisini alıyorum. – redgem
Dosya kodlaması nedir? – fl00r