簡體   English   中英

如何避免與Ruby 1.9 Encoding :: CompatibilityError和機械化表單提交?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM