Zapewne tak jak ja, znajdzie się jeszcze bardzo wielu fanów konsolowej wersji komunikatora gadu gadu… którzy mają problem z kodowaniem polskich znaków. Dzieje się tak, gdy domyślnie używamy kodowania innego jak ISO-8859-2, które to jako jedyne wspierane jest przez ekg.
Rozwiązanie problemu z kodowaniem polskich znaków w ekg jest bardzo proste. Potrzebujemy do tego jedynie narzędzia o nazwie luit. Najpierw spróbujmy wywołać w konsoli komendę:
dev@local:~$ luit
-bash: luit: command not found
Jeżeli wywołanie komendy nie powoduje błędu tak jak powyżej to oczywiście pomijasz instalację.
Instalacja luit
Szybka instalacja (debian, ubuntu)
dev@local:~$ sudo apt-cache search luit
x11-utils - X11 utilities
xterm - X terminal emulator
Narzędzie luit zawiera się w dwóch paczkach, a więc do szczęścia wystarczy instalacja jednej z nich.
dev@local:~$ sudo apt-get install x11-utils
Instalacja ręczna
W moim przypadku instaluję luit ze źródła.
dev@local:~/luit$ wget http://invisible-island.net/datafiles/release/luit.tar.gz
dev@local:~/luit$ tar -zxvf luit.tar.gz
dev@local:~/luit$ cd luit-20130217/
dev@local:~/unix/luit-20130217$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
Configuring for linux-gnu
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable cc found in $PATH
Komenda ./configure zakończyła się niepowodzeniem spowodowanym brakiem pakietu gcc. Po instalacji wszystko idzie gładko:
dev@local:~/unix/luit-20130217$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
Configuring for linux-gnu
checking for gcc... gcc
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
UWAGA! Jeżeli nie posiadasz na serwerze uprawnień roota, komendę ./configure wywołaj z parametrem prefix wskazując ścieżkę gdzie chcesz zainstalować narzędzie luit (oczywiście musisz do niej posiadać uprawnienia zapisu).
./configure --prefix=/home/dev/utils/luit
A następnie:
dev@local:~/unix/luit-20130217$ make
gcc -I. -I. -DHAVE_CONFIG_H -DLOCALE_ALIAS_FILE=\"/usr/share/X11/locale/locale.alias\" -D_GNU_SOURCE -g -O2 -c ./luit.c
gcc -I. -I. -DHAVE_CONFIG_H -DLOCALE_ALIAS_FILE=\"/usr/share/X11/locale/locale.alias\" -D_GNU_SOURCE -g -O2 -c ./iso2022.c
...
/bin/sh ./plink.sh gcc -g -O2 -o luit luit.o iso2022.o charset.o parser.o sys.o other.o fontenc.o luitconv.o builtin.o
dev@local:~/unix/luit-20130217$ make install
/usr/bin/install -c luit /usr/local/bin/`echo luit| sed 's,x,x,’`
/usr/bin/install: cannot create regular file `/usr/local/bin/luit’: Permission denied
make: *** [install] Error 1
Jeżeli otrzymujesz podobny błąd po komendzie make install, to znaczy że potrzebujemy ją wywołać z uprawnieniami roota.
dev@local:~/unix/luit-20130217$ sudo make install
/usr/bin/install -c luit /usr/local/bin/`echo luit| sed 's,x,x,'`
mkdir -p /usr/local/share/man/man1
/bin/sh ./minstall.sh "/usr/bin/install -c -m 644" ./luit.man /usr/local/share/man/man1/`echo luit| sed 's,x,x,'`.1 /usr/local /usr/share/X11/locale/locale.alias
/usr/bin/install -c -m 644 ./luit.man /usr/local/share/man/man1/luit.1
Completed installation of executables and documentation.
Jak uruchomić ekg z poprawnym kodowaniem używając luit?
luit -encoding ISO-8859-2 ekg