Recode w irssi

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.

Tagi strony: irc irssi utf-8
Zawartość tej strony dostępna jest na licencji Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.