Мы хотели преобразовать строку Unicode на словацком языке в обычный ASCII (без акцентов / падежей). То есть: č-> c š-> s á-> a é-> e и т. Д.
Мы попробовали:
cstr = Iconv.conv('us-ascii//translit', 'utf-8', a_unicode_string)
Он работал на одной системе (Mac) и не работал на другой (Ubuntu), где он давал '?'для акцентированных символов после преобразования.
Проблема: iconv использовал переменные LANG / LC_ALL.Я не знаю, почему, когда кодировки известны, но хорошо ... Вы должны были установить переменные локали в нечто .utf8, например: sk_SK.utf8 или en_GB.utf8
Следующим шагом была попыткаустановить ENV ['LANG'] и ENV ['LC_ALL'] в config / application.rb.Это было проигнорировано Iconv в ruby.
Другая попытка состояла в том, чтобы использовать глобальные системные настройки в / etc / default / locale - это работало в командной строке, но не для приложения Rails.Причина: у apache своя среда.Поэтому окончательным решением было добавить переменные LANG / LC_ALL в / etc / apache2 / envvars:
export LC_ALL="en_GB.utf8"
export LANG="en_GB.utf8"
export LANGUAGE="en_GB.utf8"
Перезапустил Apache, и он заработал.
Это скорее немного каквопрос.Однако, если у кого-то есть лучшее решение, я бы хотел узнать об этом.