Nr | Opis | Stan | Zgłaszający | Przypisany do | Dodano |
---|---|---|---|---|---|
517 | Przy kodowaniu UTF-8 backspace nie działa dobrze kiedy kasuje się polskie znaki. | odrzucony | Malven | 5.5.2005 22:53 |
Komentarze:
Autor | Treść |
---|---|
Lam 6.5.2005 11:18 |
Jest to wina obsługi echa lokalnego przez Twój telnet. Konkretnie, chodzi o obsługę "canonical input" przez twój pseudoterminal. Sprawdź np. taką sytuację: odpal "cat", wpisz "óó" i naciśnij dwa razy Backspace - oba "ó" znikną, wciśnij Enter - okazuje się, że w buforze pozostało jedno "ó". Linux od pewnego czasu obsługuje flagę IUTF8 włączaną przez polecenie "stty iutf8", jednak potrzeba do tego stty z coreutils 5.3.0 (niedawno wydana wersja rozwojowa, aktualna stabilna wersja dostępna we wszystkich dystrybucjach to 5.2.1, przy czym łaty były dostępne jeszcze za czasów, jak nie było coreutils, a były oddzielne sh-utils i inne, tylko że dopiero rok temu wciągnęli ją do pnia, cycochy). Osobną kwestią jest obsługa "ą", "Ś" i "Ń" przez telnet, którego używam - wpisanie "ą" i próba wysłania powoduje wyłączenie echa lokalnego, ponieważ drugim znakiem kodu literki "ą" jest ^E (telnet myśli, że to wciskasz, przez to też nie wysyła "ą"). Analogicznie, drugim znakiem "Ś" jest ^Z, a drugim znakiem "Ń" jest ^C, oba te znaki zupełnie zawieszają telnet. Aby temu zaradzić, należy telnetowi wydać polecenia "unset echo", "unset susp" i "unset interrupt" lub ustawić te zmienne na inne wartości (co mi jest zbędne, nigdy tego nie używam, zresztą zawsze mogę wcisnąć ^] i wydać potrzebne polecenia ręcznie). Ja zrobiłem sobie plik ~/.telnetrc o treści: lac.pl unset echo lac.pl unset susp lac.pl unset interrupt Zamiast lac.pl można wpisać DEFAULT, wtedy ustawienia będą obowiązywały dla innych adresów, z którymi się próbujesz łączyć. Po wydaniu polecenia stty iutf8 i ustawieniu telneta wszystko działa jak należy. Z tego, co mi mówiono, PuTTY poprawnie obsługuje wyżej wspomniane niuanse obsługi UTF-8. Poza tym nie jest to absolutnie wina Laca, odrzucam. |