Я использую Ruby 1.8.7 с Rails 2.3.5 на 64-битной Ubuntu 10.04. Я написал метод, который должен принимать строку, подобную этой, "É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, но я не могу понять, куда идти дальше.
Заранее спасибо!