RH8.0 + konzole + UTF8 + cestina (znovu)
Jiri Moravec
qjim na seznam.cz
Sobota Únor 1 02:49:00 CET 2003
>>On Wed, Jan 08, 2003 at 07:54:04PM +0100, Petr Šobáň wrote:
>>
>>>> Potřebuji poradit
>>>>
>>>> nemůžu rozchodit češtinu v konzoli, prostě něco mám špatně nastavené buďto
>>>> klávesnici, nebo znakovou sadu.
>>>>
>>>> Můžete mi někdo napsat jakou znakovou sadu používáte a jakou klávesovou mapu.
>>>> Prostě skouším a vždy to nepíše nějaké znaky.
>>
>>
>>Klavesove mapy by mely byt v UTF-8, ale nejsou. Proto si zapnete prevod
>>do UTF-8, tj do /etc/sysconfig/keyboard doplnte do promenne KEYTABLE
>>prepinac -u. Ja mam:
>>
>># cat /etc/sysconfig/keyboard
>>KEYBOARDTYPE="pc"
>>KEYTABLE="cz-lat2 -u"
1)
Znaky s diakritikou (přesneji ne ISO 8859-1) můžu zadat symbolicky např. ecaron, který
mi ale loadkeys bez -u nenačte korektně. Ví někdo proč?
2)
Druhá možnost je zadat tyto znaky jako U+XXXX. V každém případě se v mapě neobjevují
ne ASCII znaky (zatím). Co je tedy míněno tím, že klávesové mapy nejsou v UTF-8?
To že loadkeys neumí bez -u interpretovat jména ne ISO 8859-1 znaků?
Nebo to že nerozezná charset "utf-8" apod., ale např. "iso-10646-18" ano.
Mimochodem může mi někdo vysvětlit tu 18 - dovčerejška jsem si myslel, že to je norma
ISO 10646-1.
3)
Zásadní problém mám ale s mrtvými klávesami, resp. compose. Bez ohledu na to jestli v compose zadám výsledný znak jako U+XXXX nebo jako 'vícebajtový UTF-8' a mapu načtu s/bez -u, stejně jsou výsledkem podobné zhovadilosti:
compose '\'' 'R' to 'T'
compose '^' 'R' to 'X'
compose '\'' 'S' to '`'
compose '^' 'S' to '`'
compose '\'' 'T' to 'd'
compose '^' 'T' to 'd'
compose '\'' 'U' to '<0xDA>'
compose '^' 'U' to 'n'
Z hexadecimálního výpisu se dá zjistit, že loadkeys (nebo kernel) uřízne významější bajt tj. z <Compose><^><S> namísto 'Š' tj. U+0160 vyleze bajt 0x60 - náhodou platný U+0060
tj. '`'. Přitom se tento výstup zjevně snaží interpretovat jako UTF-8, protože z <Compose><'><U> namísto 'Ú' tj. U+00DA vyleze bajt 0xDA což není ani náhodou platný UTF-8 znak a readline v bashi z toho divočí. A datlovat běžnou diakritiku přes Hex_? je o duševní zdraví.
Je to bug v kernelu, kbd, obojím a nebo ve mě?
Takže zbývá hlavní otázka:
Znáte někdo ŘEŠENÍ?
Jinak pro upřesnění: běžím na čerstvě instalovaném RH8.0
Z Rawhide balíky: kernel-2.4.18-19.8.0, kbd-1.08-2, bash-2.05b-14
Jiří Moravec
E-mail: qjim na seznam.cz
Další informace o konferenci Linux