使用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的第二个参数(字符集)也不起作用。
没有特殊字符的主题工作正常。有什么方法使这个工作吗?
1条答案
按热度按时间aamkag611#
这会重现问题(使用
net/imap
使用的相同regexp):两种可能性:
1.将
# encoding: ascii-8bit
添加到脚本的顶部1.强制字符串的编码为
ascii-8bit
:搜索结果(['主题',主题.强制编码('ascii-8位'),'NOT','SEEN'])