[英]How to avoid Encoding::CompatibilityError with ruby 1.9 and mechanize form submit?
當前,我正在測試將ruby 1.9.2與機械化一起使用的ruby腳本(Ubuntu Lucid軟件包)。
第一行設置以下選項:
#!/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()對象和通過對File對象進行解析的Nokogiri對象從磁盤讀取已填充的數據(例如,用戶)。
將數據打印到控制台不會顯示明顯的問題。
因此,我的問題是:如何使用機械化發布表單數據時解決該編碼問題?
我必須告訴機械化HTTP POST使用什么字符編碼嗎?
好吧,看起來像是0.9.3版的機械化中的錯誤(可能是第25期 )。 使用當前的git版本的mechanize為我解決了發布問題。
但是機械化的1.0版本也應該包含此修復程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.