Actuellement, je teste un script ruby qui utilise mechanize avec ruby 1.9.2 (paquets Ubuntu Lucid).Comment éviter l'encodage :: CompatibilityError avec ruby 1.9 et le formulaire mécanize submit?
La première ligne définit les options suivantes:
#!/usr/bin/env ruby -KU
Certains code postal de mécaniser déclenche une exception près:
/usr/lib/ruby/1.9.1/www/mechanize/form.rb:222:in `join': incompatible character encodings: ISO-8859-1 and ASCII-8BIT (Encoding::CompatibilityError)
from /usr/lib/ruby/1.9.1/www/mechanize/form.rb:222:in `request_data'
from /usr/lib/ruby/1.9.1/www/mechanize.rb:401:in `post_form'
from /usr/lib/ruby/1.9.1/www/mechanize.rb:344:in `submit'
from /usr/lib/ruby/1.9.1/www/mechanize/form.rb:130:in `submit'
Mechanize est utilisé comme dans le programme source:
# f is a Mechanize::Page object
final = f.form('final')
f.form('final') { |x|
f.form('final') { |x|
x.user == user
# ...
}
a = final.submit
Les données renseignées (par exemple l'utilisateur) sont lues à partir du disque via les objets File.new() et via Nokogiri- objets qui analysent les objets File.
L'impression des données sur la console n'affiche pas de problèmes de configuration évidents.
Ainsi ma question: Comment résoudre ce problème de codage lors de la publication de données de formulaire en utilisant mécaniser? Dois-je dire à mécaniser quel encodage de caractères utiliser pour les POST http?