【发布时间】:2013-03-18 14:03:51
【问题描述】:
使用 Ruby + IMAP 并尝试使用特殊字符搜索主题时:
imap.uid_search(['SUBJECT', subject, 'NOT', 'SEEN'])
如果主题是“Olá”,它将失败:
Encoding::CompatibilityError: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
from /Users/fernando/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/net/imap.rb:1266:in `==='
指定 uid_search 的第二个参数,即字符集,也不起作用。
没有特殊字符的主题可以正常工作。有没有办法让这个工作?
谢谢。
【问题讨论】:
-
你能把
# encoding: utf-8放在你正在实例化imap对象的Ruby 脚本的顶部吗? (也许这是一个愚蠢的建议) -
@SeamusAbshere 不幸的是,它会导致同样的错误。
-
你的
Encoding.default_external是什么? -
@SeamusAbshere Encoding.default_external 是 UTF-8。不,那个补丁不能修复它。我还尝试更新到 ruby 1.9.3p392。一点运气都没有。
标签: ruby imap gmail-imap