J'ai une application Sinatra (http://analyzethis.espace-technologies.com) qui effectue les opérations suivantesComment convertir une réponse Net :: HTTP à un certain codage dans Ruby 1.9.1?
- Récupérer une page HTML (via net/http)
- Créez un document Nokogiri de la response.body
- Extrait quelques informations et envoyer retour dans la réponse. La réponse doit être codée en UTF-8
J'ai donc rencontré le problème en essayant de lire les sites qui utilisent des encodages Windows-1256 comme www.filfan.com ou www.masrawy.com.
Le problème est le résultat de la conversion de codage n'est pas correct si aucune erreur n'est levée.
Le filet/http response.body.encoding donne ASCII 8BIT qui ne peut être converti en UTF-8
Si je Nokogiri :: HTML (response.body) et utiliser les sélecteurs CSS pour obtenir certains contenu de la page - dire le contenu de la balise de titre par exemple - je reçois une chaîne qui, quand j'appelle string.encoding renvoie WINDOWS-1256. J'utilise string.encode ("utf-8") et envoie la réponse en utilisant cela mais encore une fois la réponse n'est pas correcte.
Des suggestions ou des idées sur ce qui ne va pas dans mon approche?
Cela fonctionne très bien! –