首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免使用Ruby1.9编码::CompatibilityError和机械化表单提交?

如何避免使用Ruby1.9编码::CompatibilityError和机械化表单提交?
EN

Stack Overflow用户
提问于 2010-11-01 23:24:32
回答 1查看 886关注 0票数 1

目前,我正在测试一个ruby脚本,该脚本在ruby 1.9.2 (Ubuntu Lucid包)中使用mechanize。

第一行设置以下选项:

代码语言:javascript
复制
#!/usr/bin/env ruby -KU

一些机械化post代码触发如下异常:

代码语言:javascript
复制
/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在源程序中的用法如下:

代码语言:javascript
复制
# 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对象从磁盘读取。

将数据打印到控制台未显示明显的编码问题。

因此,我的问题是:在使用mechanize发布表单数据时,如何解决此编码问题?

我必须告诉机械化什么字符编码用于http帖子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-02 07:52:33

嗯,看起来像是mechanize的0.9.3版本中的一个bug (可能是issue 25)。使用the current git version of mechanize为我修复了发布问题。

但是机械化1.0版本也应该包含这个修复。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4070284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档