Wprowadzenie
Recode to funkcja irssi pozwalająca używać różnych stron kodowych w zależności od kanału lub sieci z której korzystamy, niezależnie od tego, jakiego kodowania używa nasz terminal.
Wymagania
By używać recode w irssi potrzebujemy wersji minimum 0.8.10.
emerge -av ">=net-irc/irssi-0.8.10"
Konfiguracja
Uruchamiamy irssi poleceniem:
$ irssi
Następnie sprawdzamy, czy mamy dostępne polecenie /recode. Jeśli zwrócony zostanie błąd informujący o braku takiego polecenia, upewniamy się, że korzystamy z wersji 0.8.10. Jeśli nasz system spełnia te wymagania, a polecenie /recode wciąż nie jest dostępne, najprawdopodobniej spowodowane jest to błędnym linkowaniem z biblioteką glib1 zamiast glib2. Irssi do funkcji /recode wymaga zlinkowania z glib2.
Jeżeli polecenie locale (w konsoli, nie w irssi) zwraca wynik podobny do tego (może być to en_GB, czy cokolwiek innego):
$ locale
LANG=pl_PL
LC_CTYPE="pl_PL"
LC_NUMERIC="pl_PL"
LC_TIME="pl_PL"
LC_COLLATE="pl_PL"
LC_MONETARY="pl_PL"
LC_MESSAGES=C
LC_PAPER="pl_PL"
LC_NAME="pl_PL"
LC_ADDRESS="pl_PL"
LC_TELEPHONE="pl_PL"
LC_MEASUREMENT="pl_PL"
LC_IDENTIFICATION="pl_PL"
LC_ALL=
Znaczy, że nasz terminal korzysta z kodowania iso-8859-2. W takim wypadku, ustawiamy zmienną term_charset (w irssi) na iso8859-2:
/set term_charset iso8859-2
Jeśli powyższe polecenie zamiast pl_PL (czy na przykład en_GB) zwraca pl_PL.UTF-8 (lub na przykład en_GB.UTF-8), znaczy to, że nasz terminal używa UTF-8. Musimy więc, ustawić zmienną term_charset na UTF-8.
/set term_charset UTF-8
Teraz podejmujemy decyzję: jeśli pośród kanałów na których przebywamy, więcej jest tych, na których używane jest iso-8859-2, recode_out_default_charset ustawiamy na iso8859-2:
/set recode_out_default_charset iso8859-2
Jeśli przeważa UTF-8, to zamiast iso8859-2 w powyższych komendach użyjemy UTF-8.
Użycie recode
Jeśli chcemy, by dla konkretnego kanału używać innego kodowania niż standardowe (to, które wybraliśmy w poprzednim akapicie), piszemy:
/recode add #kanał kodowanie
Na przykład:
/recode add #gentoo.pl UTF-8
W celu usunięcia powyższego, użyjemy:
/recode remove #gentoo.pl
Jeśli przebywamy na kilku kanałach o tej samej nazwie, ale w różnych sieciach, zamiast dodawać kodowanie dla danego kanału poprzez /recode add #kanał kodowanie, użyjemy:
/recode add sieć/#kanał kodowanie
W naszym przypadku będzie to:
/recode add freenode/#gentoo.pl UTF-8
Sieć odnosi się do nazwy jaką nadaliśmy danej sieci, a nie do jej faktycznej nazwy.
Przy dodawaniu nazwy kanału, ważny jest hash (#) na początku jego nazwy.
Informacje, jak ustawić nazwę sieci, odnajdziemy tutaj: http://irssi.org/documentation/startup#c3
Więcej informacji na temat recode otrzymamy za pomocą polecenia /help recode.
Autorem artykułu jest Damjanek.





