Tôi có một ứng dụng Sinatra (http://analyzethis.espace-technologies.com) nào sau đâyLàm thế nào để chuyển đổi một phản ứng Net :: HTTP thành một mã hóa nhất định trong Ruby 1.9.1?
- Lấy một trang HTML (thông qua net/http)
- Tạo một tài liệu Nokogiri từ response.body
- Trích xuất một số thông tin và gửi nó trở lại trong phản ứng. Câu trả lời phải được mã hóa UTF-8
Vì vậy, tôi đã gặp sự cố khi đọc các trang web sử dụng mã hóa windows-1256 như www.filfan.com hoặc www.masrawy.com.
Vấn đề là kết quả của việc chuyển đổi mã hóa không chính xác mặc dù không có lỗi nào được ném.
Các net/http response.body.encoding cho ASCII-8 bit mà không thể được chuyển đổi sang UTF-8
Nếu tôi làm Nokogiri :: HTML (response.body) và sử dụng bộ chọn css để có được một số nội dung từ trang - ví dụ: nội dung của thẻ tiêu đề - Tôi nhận được một chuỗi khi tôi gọi string.encoding trả về WINDOWS-1256. Tôi sử dụng string.encode ("utf-8") và gửi phản hồi bằng cách sử dụng nhưng một lần nữa phản hồi là không chính xác.
Bất kỳ đề xuất hoặc ý tưởng nào về những gì sai trong cách tiếp cận của tôi?
Nó hoạt động tuyệt vời! –