Summary: | Console applications are garbled when UNICODE="yes" (rc.conf) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Sergey Zolotorev <serzh> |
Component: | [OLD] Unspecified | Assignee: | Gentoo Linux bug wranglers <bug-wranglers> |
Status: | VERIFIED NEEDINFO | ||
Severity: | major | CC: | chriswhite |
Priority: | High | ||
Version: | 2005.1 | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
My /proc/config.gz
rc.conf make.conf Screenshot of the garbled MC (for kernel's menuconfig it is similarity) |
Description
Sergey Zolotorev
2006-02-25 08:02:55 UTC
Created attachment 80696 [details]
My /proc/config.gz
It is minimal configuration when the bug is reprodusable.
You don't simply enable unicode in rc.conf and pray it works. You also have to have the proper font support to. Japanese utf8 for example will not work in console, simply because there's no font support for it. Now European fonts (spanish, french, etc.) are more likely to have font support. If you're really that in need of better utf8 support in the console, you're going to have to try something like a framebuffer console for that sort of thing. Created attachment 80697 [details]
rc.conf
Created attachment 80698 [details]
make.conf
Created attachment 80699 [details]
Screenshot of the garbled MC (for kernel's menuconfig it is similarity)
I made this screenshot in fb-mode (standard vesafb), but without fb-mode it is similarity.
(In reply to comment #2) > You don't simply enable unicode in rc.conf and pray it works. You also have to > have the proper font support to. Japanese utf8 for example will not work in > console, simply because there's no font support for it. Now European fonts > (spanish, french, etc.) are more likely to have font support. If you're really > that in need of better utf8 support in the console, you're going to have to try > something like a framebuffer console for that sort of thing. I tried set cyrillic consoel font (keymap etc). With text in bash all is OK. But there artifacts in ncurses application (I tried to rebuild MC with slang only, without ncurses - but all the same). If I set UNICODE="no" artifacts are missed. Please look at the screenshot... This is wonderful, why have you censored all your locale settings from emerge --info -v output?! Don't you think this info is pretty important here? Or you don't have them set at all? Post the output of 'locale' command and also exactly which consolefont are you using. Also, current version of slang in portage doesn't support unicode at all, recompile mc with USE="-slang". (In reply to comment #7) > Post the output of 'locale' command and also exactly which consolefont are you > using. There's 'locale' command output: LANG=ru_RU LC_CTYPE="ru_RU" LC_NUMERIC="ru_RU" LC_TIME=POSIX LC_COLLATE="ru_RU" LC_MONETARY="ru_RU" LC_MESSAGES=en_US LC_PAPER="ru_RU" LC_NAME="ru_RU" LC_ADDRESS="ru_RU" LC_TELEPHONE="ru_RU" LC_MEASUREMENT="ru_RU" LC_IDENTIFICATION="ru_RU" LC_ALL= /etc/conf.d/consolefont: CONSOLEFONT="ruscii_8x16" # All other settings (CONSOLETRANSLATION) are default and I didn't change them. (You don't need to CC yourself if you're the reporter) Well.. you actually need to have a utf8 locale set... export LC_ALL=ru_RU.utf8 export LANG=ru_RU.utf8 (In reply to comment #8) > Also, current version of slang in portage doesn't support unicode at all, > recompile mc with USE="-slang". I have unmerged slang lib from my system and rebuilt mc without slang. All the same: evmsn, mc and menuconfig are unusable. (In reply to comment #10) > (You don't need to CC yourself if you're the reporter) Thank you. I just have never used Bugzilla early. > Well.. you actually need to have a utf8 locale set... > > export LC_ALL=ru_RU.utf8 > export LANG=ru_RU.utf8 I tried "ru_RU.UTF-8" and even "en_US". I use short "ru_RU" because I have "ru_RU/UTF-8" in my locales.build. (In reply to comment #12) > I use short "ru_RU" because I have "ru_RU/UTF-8" in my locales.build. Eh? Please, read the UTF-8 guide: http://www.gentoo.org/doc/en/utf-8.xml You have (among others) the following locales compiled: ru_RU ru_RU.cp1251 ru_RU.koi8r ru_RU.utf8 and you assume that something will automagically pick up the unicode one? :-O (In reply to comment #13) Sorry, I've confused you. I tried run MC, EVMSN and menuconfig with SUDO which don't inherit LC_* settings (for root they all are "POSIX"). Now I've emerged slang and run MC with LC_ALL="ru_RU.UTF-8". All is good. BTW, without slang MC is quite ugly (but still usable). And another issue: if I set LC_MESSAGE to invalid value (just "ru_RU" for example) then "segmentation fault" comes when MC exited. I think is't some slang error. I assumed if I added "ru_RU/UTF-8" line into my locales.build and reemerged glibc then UTF-8 should be used for ru_RU by default. I've been mistaken. It's interested why I built locale "foo_FOO/UTF-8" and set LC_ALL="foo_FOO" UTF-8 doesn't work by default... Well, locales.build doesn't work that way. Here's what happens: 1) You set the userlocales USE flag in glibc 2) you setup locales.build with only the locales you need 3) glibc will build only those locales, saving you a good ammount of compile time (this was done because the standard glibc locale generation time was uneededly long) The true way that locale variables are set, however, is through the environment, or more specifically the LC_* and LANG variables. Setting them to the default for the country will give you a different result depending on the language. For example, Japanese has euc-jp setup as the default. UTF8 is, in general, not the default for most languages. This is why you have to set them up, generally through a custom /etc/env.d/ file, through /etc/profile, through .bashrc, or through .xinitrc (depending on your specific requirements). You can see what locales are avaliable with locale -a, and see which ones are active by simply running locale with no parameters. (In reply to comment #15) > The true way that locale variables are set, however, is through the > environment, or more specifically the LC_* and LANG variables. Setting them to > the default for the country will give you a different result depending on the > language. For example, Japanese has euc-jp setup as the default. UTF8 is, in > general, not the default for most languages. This is why you have to set them > up, generally through a custom /etc/env.d/ file, through /etc/profile, through > .bashrc, or through .xinitrc (depending on your specific requirements). You > can see what locales are avaliable with locale -a, and see which ones are > active by simply running locale with no parameters. > I see. Thank you. |