2012-08-09 5 views
0

누군가가 이것을 살펴볼 수 있습니까? 이 호출을 할 때 잘못된 UTF-8 문자가 있다고 생각합니다.Nokogiri - 인코딩 문제 - 잘못된 UTF8 문자

Nokogiri::HTML(open("http://www.next.co.uk/x502062s2"))

이 만약이 주위에 방법? 그리고 이것이 문제입니까? 나는 누군가가 내가 약간의 무언가를하고 있다고 말하기 전에 (제품이 사이트에 피드를 제공하지 않을 때) 제품 정보 캡처 용으로 설계된 새로운 오픈 소스 스크린 스크레이퍼를 쓰고있다.

+0

이상한 일 ... Nokogiri.parse (open (uri.to_s) .read)로 변경하면 모두 정상입니다. 이유를 알아야합니다. –

+1

Ruby, Nokogiri 및 Open-URI의 어떤 버전을 사용하고 있습니까? 나는 어떤 오류도없는 것 같습니다. –

답변

2

Nokogiri에 무엇인가를 넘기기 전에 인코딩 할 수있다. 페이지의 내용을 무시하고 Iconv를 사용하여 잘못된 UTF 문자를 모두 무시합니다.

나는 이런 식으로 사용하던 :

ic = Iconv.new('UTF-8//IGNORE', 'UTF-8') 
valid_string = ic.iconv(open('http://example.com').read) 

가 또한 확인할 수 있습니다 "Fixing invalid UTF-8 in Ruby, revisited을."