I suspect "ru" isn't a valid locale. Try the command
lang=ru locale and see if there are any error messages. On my system, "ru" is an invalid locale and "ru_RU" is in iso8859-5; you need ru_RU.UTF-8 for it to work in utf-8.
$ LANG=ru locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
To find the character set used for a locale, you can use the
$ LANG=ru_RU locale -c -k charmap collate-codeset
Note that locales are defined in categories. The LC_COLLATE category is the one used for sorting. Setting LC_ALL will override all of them, or you can set one individually by using the named environment variable, or you can set a default by setting LANG. Most people will want to set LANG for daily usage rather than LC_ALL.
In the output of the
locale tool, categories which are set based on LC_ALL or LANG will show up in quotes, whereas categories set by their own variables (and LC_ALL itself if set, and LANG if LC_ALL is not set) will show up without quotes. For example:
$ LANG=en_US.UTF-8 LC_MESSAGES=ru_RU.UTF-8 locale