Mam aplikacji Sinatra (http://analyzethis.espace-technologies.com), który wykonuje następująceJak przekonwertować odpowiedź Net :: HTTP na określone kodowanie w Rubim 1.9.1?
- Odzyskaj stronę HTML (przez net/HTTP)
- utworzyć dokument Nokogiri z response.body
- wyodrębnić pewne informacje i wysyłać to z powrotem w odpowiedzi. Odpowiedź powinna być zakodowana w kodowaniu UTF-
Tak więc doszedłem do problemu, próbując czytać strony, które używają kodowań Windows-1256, takich jak www.filfan.com lub www.masrawy.com.
Problem polega na tym, że konwersja kodowania nie jest poprawna, ale nie są zgłaszane żadne błędy.
Siatka/http response.body.encoding daje ASCII-8bit, które nie mogą być zamienione na UTF-8
Jeśli robię Nokogiri :: HTML (response.body) i korzystać z selektorów CSS, aby uzyskać pewność, treść ze strony - powiedz na przykład treść tagu tytułowego - otrzymuję ciąg znaków, który po wywołaniu string.encoding zwraca WINDOWS-1256. Używam string.encode ("utf-8") i wysyłam odpowiedź, ale odpowiedź jest nieprawidłowa.
Jakieś sugestie lub pomysły na temat tego, co jest nie tak w moim podejściu?
Działa świetnie! –