The de-facto standard for Russian Cyrillics on Linux (and
other Unices) is a KOI8-R encoding while virtually nobody
uses ISO-8859-5 for Russian. But the glibc RPM includes
/usr/share/locale/ru_RU directory with ru_RU.ISO-8859-5 and
does not include ru_RU.KOI8-R locale
The glibc rpms are including the KOI*-R support, but under the name of
ru_SU. You can either use ru_SU instead of the ru_RU or just replace
the contents of the ru_RU dirs/locale files with what is found in
Needless to say, the "international standard" is the ISO-8859-5 crap
for ru_RU and we can not diverge that easily from the standards...
Now, if the ru_SU thing is busted then I am taking patches, my russian
is *so* limited...
/usr/share/locale/ru_SU seems OK, I just did not know it was KOI8-R
But there is a big problem with ru_SU -
/usr/X11R6/lib/X11/locale/locale.alias defines ru_SU to be
One way to make everything work consistently (and without any
deviation from standards) is to run
localedef -ci ru_RU -f KOI8-R ru_RU.KOI8-R
mv ru_RU.koi8r ru_RU.KOI8-R
and to use LC_ALL=ru_RU.KOI8-R after that.
Another way is to add
line to /usr/share/locale/locale.alias and to change ru_SU to be
ru_RU.KOI8-R in /usr/X11R6/lib/X11/locale/locale.alias
One of the problems with the second approach is that neither
locale.alias file is a %config file
*** Bug 641 has been marked as a duplicate of this bug. ***
Traditionaly, *the standard* locale for UNIX in Russia was
KOI8-R. This is broken in RedHat - ISO is set by default.
1. ru_RU must select KOI8-R
(same in /usr/X11R6/lib/X11/locale/locale.alias)
2. ru_RU.<charset> must reference respective charsets
3. ru_SU must be an alias for ru_RU
ru_SU now properly selected KOI8-R. The X situation has been
rectified as well.
for 6.1, ru_SU is gone. ru_RU selects ISO-8859-5. ru_RU.KOI8-R
selected the KOI8-R encoding, and ru_RU.ISO-8859-5 selects the 8859-5
encoding as well (obviously).
We are fully in line with all standards for this.