Portál AbcLinuxu, 10. května 2025 08:59

Dotaz: Problémy s UTF-8 v Debianu Etch

Barbucha.eu avatar 12.6.2007 10:15 Barbucha.eu | skóre: 23 | Chrást u Plzně
Problémy s UTF-8 v Debianu Etch
Přečteno: 575×
Odpovědět | Admin

Formulace problému

Už pár dnů řeším problém s kódováním UTF-8 v Debianu Etch, které by od této verze mělo být výchozí. Česká klávesnice se při spouštění systému zavádí skriptem /etc/init.d/keymap.sh, který na všech konzolách zavede klávesnici /etc/condole/boottime.kmap.gz, což je symlink na /usr/share/keymaps/i386/qwertz/cz-us-qwertz.kmap.gz. Zároveň tento skript přepne první konzole do režimu UTF-8. Ostatní se musí přepínat explicitně voláním unicode_start, což běžnému uživateli (nevím proč vypisuje):
Keymap 0: Permission denied
Keymap 1: Permission denied
Keymap 2: Permission denied
Keymap 3: Permission denied
Keymap 4: Permission denied
Keymap 5: Permission denied
Keymap 6: Permission denied
Keymap 7: Permission denied
Keymap 8: Permission denied
Keymap 9: Permission denied
Keymap 10: Permission denied
Keymap 11: Permission denied
Keymap 12: Permission denied
Keymap 13: Permission denied
Keymap 14: Permission denied
Keymap 15: Permission denied
KDSKBENT: Operation not permitted
loadkeys: could not deallocate keymap 16
Navíc jsou problémy se znaky ě a ř. Když je vše v pořádku, tak se vypisuje ěščřžýáíé. V horším případě se vypisuje πšč=žýáíé.

Co bych rád

Rád bych vyřešil problém s chybovými výpisy. Buď jak zařídit, aby všechny konzole byly v UTF-8 implicitně, nebo jak zařídit, aby unocode_start proběhlo hladce (což by bylo výhodnější). Dále bych rád, aby se znaky ě a ř zobrazovaly stejně jako ostatní znaky bez zvýraznění.
Co Bůh rozbil, člověk neopravuj!
Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Fuky avatar 12.6.2007 12:52 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Problémy s UTF-8 v Debianu Etch
Odpovědět | | Sbalit | Link | Blokovat | Admin

Bug#346100: udev: Permissions change breaks unicode_start

Máš nějaký rozumný důvod pro to používat UTF-8 v konzoli? To nepoužíváš X-ka a zároveň potřebuješ používat jiná písmenka, než která Ti poskytuje česká abeceda? Řekl bych, že plno lidí se snaží naprosto všude používat UTF-8, aniž by se zamysleli zdali to vůbec potřebují a jediné čeho tím docílí jsou zbytečné problémy.

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
Barbucha.eu avatar 12.6.2007 15:52 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Rozumný důvod?
No, rozumný důvod vlastně ne. :-) Vedlo mne k tomu pouze zjištění v poznámkách o nové distribuci.
Výchozí kódování nových instalací Debian GNU/Linuxu je UTF-8 a mnoho aplikací je pro toto kódování přednastaveno. Uživatelé přecházející na Etch ze starší verze se budou muset do tohoto kódování přepnout ručně vygenerováním příslušných locales a nastavením proměnných prostředí. Celosystémové nastavení můžete změnit příkazem dpkg-reconfigure locales.
Prostě jsem usoudil, že bych měl mít UTF-8 i na konsoli. Ono to vlastně funguje. Jen mne rozčilují ty chybové výpisy. Ale když vidím, že je to složité opravit, tak to skutečně za tu námahu nestojí. Těch pár případů, co člověk dělá něco na konsoli se to vydrží.

V každém případě díky za odpověď.
Co Bůh rozbil, člověk neopravuj!
David Heidelberg avatar 15.6.2007 02:16 David Heidelberg | skóre: 46 | blog: blog_
Rozbalit Rozbalit vše Re: Problémy s UTF-8 v Debianu Etch
ono podle mě je utf8 nejlepší řešení standartu :-) mám s ním ty nejlepší zkušenosti ;-)

0K!AS
12.6.2007 14:21 Petr Gajdůšek | skóre: 13 | blog: Úlomky | Znojmo
Rozbalit Rozbalit vše Re: Problémy s UTF-8 v Debianu Etch
Odpovědět | | Sbalit | Link | Blokovat | Admin
K nastavení fontů v konzoli a automatické přepnutí konzolí do UTF-8:

Používám balíček console-tools. Startovací skript je /etc/init.d/console-screen.sh a konfigurák /etc/console-tools/config. Ten při bootu nastavuje prvních 6 konzolí na UTF-8 (pokud je systémové locale v UTF-8). Pokud je nainstalovaný balíček console-tools, skript /etc/init.d/keymap.sh se nepoužívá. Pro zobrazování českých znaků stačí přidat do /etc/console-tools/config řadky:

  SCREEN_FONT=lat2-sun16
  SCREEN_FONT_vc2=lat2-sun16
  SCREEN_FONT_vc3=lat2-sun16
  SCREEN_FONT_vc4=lat2-sun16
  SCREEN_FONT_vc5=lat2-sun16
  SCREEN_FONT_vc6=lat2-sun16

Automatické přepnutí všech konzolí do UTF-8 podle dokumentace nefunguje na "nových?" framebufferech, na nich se nastaví zase jen první konzole. Na vesafb mi nedělá problémy.

V dokumentace je ale uvedeno, že balíček console-tools je zastaralý a nahrazován balíčkem kbd. Já jsem zatím měnit nemusel a balíček kbd má prioritu "extra", zatímco console-tools "volitelný", takže to asi nebude tak horké.

K nastavení české klávesnice:

Nefungují mrtvé klávesy, viz http://www.debian.cz/users/localization.php:
Naneštěstí je však české rozložení klávesnice na unicodové konzoli téměř nepoužitelné, protože jaderný ovladač klávesnice neumí pracovat s tzv. mrtvou klávesou, pomocí které píšeme písmena jako ó, ť, ň, ď. Písmena navázaná na jedinou klávesu (ě, š, č, ř, ž, ý, á, í, é, ú, ů) půjdou napsat bez problémů. Chyba se týká pouze vstupu — zobrazování znaků funguje. Existuje několik záplat pro řešení této chyby, ale žádná z nich nebyla vývojáři linuxového jádra akceptována.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.