2010-11-01 25 views
1

目前,我正在測試ruby 1.9.2(Ubuntu Lucid包)使用機械化的腳本。如何避免使用ruby 1.9編碼:: CompatibilityError和機械化表單提交?

第一行設置以下選項:

#!/usr/bin/env ruby -KU 

一些機械化交代碼觸發以下異常:

/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' 

機械化用於像在源程序:

# f is a Mechanize::Page object 
final = f.form('final') 
    f.form('final') { |x| 
f.form('final') { |x| 
    x.user == user 
    # ... 
} 
a = final.submit 

填充的數據(例如用戶)通過File.new()對象和Nokogiri-在File對象上解析的對象。

將數據打印到控制檯不會顯示明顯的相關問題。

因此,我的問題:如何使用機械化發佈表單數據時修復此編碼問題?

我必須告訴機械化什麼字符編碼用於http POSTs?

回答