我在 Ubuntu 10.04 64 位上运行 Ruby 1.8.7 和 Rails 2.3.5。我编写了一个方法,它应该采用这样的字符串,"École À la Découverte"
并输出这样的文件系统名称"ecole_a_la_decouverte"
:
(Iconv.new('US-ASCII//TRANSLIT', 'utf-8').iconv "École À la Découverte").downcase.split.join('_')
当我在代码中测试这一行时,测试总是失败,说不"cole_la_dcouverte"
等于"ecole_a_la_decouverte"
. 奇怪的是,如果我插入调试器行并使用调试器控制台,测试就会通过。同样,手动运行这条线irb
似乎./script/console
可以工作。
有谁知道发生了什么以及为什么这个测试失败了?我唯一的想法是包括调试器或irb
以某种方式增加对 UTF-8 的更多支持,但我不知道下一步该去哪里。
提前致谢!